【问题标题】:Remove inline-styles when clicked on the next thumbnail单击下一个缩略图时删除内联样式
【发布时间】:2016-09-08 10:03:44
【问题描述】:

客户正在使用产品库扩展,并需要以下内容:

  • 点击缩略图时,缩略图必须显示在特色图片位置;
  • 点击当前精选图片时,图片必须展开到灯箱中。

我设法通过添加 lightbox.js 来处理这两个功能,在产品图库图片周围放置相应的链接,并使用以下代码:

jQuery(".thumb-link").click(function() {
  setTimeout(function() {
      var visibleImage = document.getElementsByClassName('gallery-image visible')[0].id;
      jQuery(a[data-lightbox=" + visibleImage + "]").attr('style', 'position: absolute; left: 0; right: 0; bottom: 0; top: 0;');
  }, 100);
});

它的作用是获取当前精选图像的 ID,该 ID 始终带有 gallery-imagevisible 类。每个缩略图都有thumblink 类。我添加了timeOut,因为否则会检测到前一个a元素的ID,它会扩展前一个图像的lightbox-link,而不是新选择的那个。

但是,每当单击另一个缩略图时,我无法创建的是删除内联 CSS。有谁知道我会怎么做?

【问题讨论】:

    标签: javascript jquery lightbox image-gallery


    【解决方案1】:

    我通过从内联 CSS 到通过 jQuery 添加 CSS 类并在超时之前将其删除来修复它。代码如下:

    JS

    jQuery(".thumb-link").click(function() {
        // Remove Class from Current Featured Image
        var visibleImage = document.getElementsByClassName('visible')[0].id;
        jQuery(a[data-lightbox=" + visibleImage + "]").removeClass('currentLink');
    
        // Set Class for New Featured Image
        setTimeout(
            function() {
                var visibleImage = document.getElementsByClassName('visible')[0].id;
                jQuery(a[data-lightbox=" + visibleImage + "]").addClass('currentLink');
            },
            100);
    });
    

    CSS

    a.currentLink {
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
    }
    

    如果有人有更有效的建议,我很乐意阅读!

    【讨论】:

    • 你有一个 jsfiddle 作为例子吗?不一定要工作,但我真的很想知道你正在使用什么类型的代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 2015-10-11
    • 2017-10-09
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    相关资源
    最近更新 更多