首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery循环动画延迟加起来来自其他元素

jquery循环动画延迟加起来来自其他元素
EN

Stack Overflow用户
提问于 2017-06-28 18:05:32
回答 1查看 35关注 0票数 0

我有一个包含图像的图库,我想为每个图像循环动画延迟。我的问题是,我在同一页面上有不同画廊的标签,我希望每个画廊的循环都重新开始,因为现在当你点击另一个标签时,其他画廊的延迟累积起来,它不能正常工作。

Html

代码语言:javascript
复制
 <div class="tab-content">
 <div id="tab1" class="tab active">
 <div class="gallery-canvas">
 <a rel="gallery-1" href="" >
 <img src="" alt="">
 </a>
 <a rel="gallery-1" href="" >
 <img src="" alt="">
 </a>
 <a rel="gallery-1" href="" >
 <img src="" alt="">
 </a>
 <a rel="gallery-1" href="" >
 <img src="" alt="">
 </a>
 </div>
 </div>
 <div id="tab2" class="tab">
 <div class="gallery-canvas">
 <a rel="gallery-2" href="" >
 <img src="" alt="">
 </a>
 <a rel="gallery-2" href="" >
 <img src="" alt="">
 </a>
 <a rel="gallery-2" href="" >
 <img src="" alt="">
 </a>
 </div>
 </div>

jquery

代码语言:javascript
复制
      $(".gallery-canvas>a").each(function(index){
          $(this).css({
               'animation-delay' : 0.1*(1+index) + 's'
          });
    });

我需要的是让每个画廊画布循环重新开始,而不是将画廊画布元素之前的延迟相加

提前谢谢你

EN

回答 1

Stack Overflow用户

发布于 2017-06-28 19:59:32

你只需要为每个.gallery-canvas重新开始你的循环。

为此,可以在for each .gallery-canvas的循环内为每个a嵌套一个单独的循环

代码语言:javascript
复制
$(".gallery-canvas").each(function() {
  $(this).children("a").each(function(i) {
    $(this).css({"animation-delay": (1+i)/10+"s"});
  });
});

  • 请注意,我将0.1*(1+index)更改为(1+index)/10

这是因为乘以一个断裂值可以得到“off”结果,在您的例子中,我得到了像0.300000000000000040.6000000000000001.这样的值

有关演示,请参阅下面的代码片段

代码语言:javascript
复制
$(".gallery-canvas").each(function() {
  $(this).children("a").each(function(i) {
    $(this).css("animation-delay",(i+1)/10+"s");
    console.log($(this).attr("rel")+" - "+i+": "+ (i+1)/10);
  });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="tab-content">
  <div id="tab1" class="tab active">
    <div class="gallery-canvas">
      <a rel="gallery-1" href="" ><img src="" alt=""></a>
      <a rel="gallery-1" href="" ><img src="" alt=""></a>
      <a rel="gallery-1" href="" ><img src="" alt=""></a>
      <a rel="gallery-1" href="" ><img src="" alt=""></a>
    </div>
  </div>
  <div id="tab2" class="tab">
    <div class="gallery-canvas">
      <a rel="gallery-2" href="" ><img src="" alt=""></a>
      <a rel="gallery-2" href="" ><img src="" alt=""></a>
      <a rel="gallery-2" href="" ><img src="" alt=""></a>
    </div>
  </div>
</div>

jsfiddle:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44799475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档