javascript - jQuery:遍历 li 淡入淡出

标签 javascript jquery delay fadein fadeout

我正在尝试让一组列表项淡入、按住然后淡出。感谢这里的另一个查询,我有以下代码:

function fadeInOut(item) {
  item.fadeIn(1000).delay(3000).fadeOut(1000, function() {
    if (item.next().length > 0) // if there is a next element
    {
      fadeInOut(item.next());
    } // use it
    else {
      fadeInOut(item.siblings(':first'));
    } // if not, then use go back to the first sibling
  }, 3000);

}

fadeInOut(jQuery('#straplines li:first-child'));
#straplines li {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="straplines">
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
</ul>

但是它似乎在第一个项目中淡出然后停止。一旦我将它放入 wordpress 模板中,它就会淡入第一个消失(而不是淡出)并停止的项目。

对此有什么想法吗?

最佳答案

您需要从淡出函数的末尾删除 3000:

function fadeInOut(item) {
  item.fadeIn(1000).delay(3000).fadeOut(1000, function() {
    if (item.next().length) // if there is a next element
    {
      fadeInOut(item.next());
    } // use it
    else {
      fadeInOut(item.siblings(':first'));
    } // if not, then use go back to the first sibling
  });

}

fadeInOut(jQuery('#straplines li:first-child'));
#straplines li {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ul id="straplines">
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
</ul>

Updated fiddle

关于javascript - jQuery:遍历 li 淡入淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44458666/

相关文章:

javascript - 哪种方式更方便在无限循环中执行异步函数,并在每次执行之间进行 sleep (Node.js/Vanilla JS)

javascript - 如何区分事件和非事件的 NodeList 集合?

javascript - 无需回流即可更改元素的宽度

javascript - Angular : Passing data back to my controller from a factory ajax call

javascript - 使用 innerHTML 创建 div 后无法收听悬停(等)事件

jQuery延迟() - 如何停止它?

javascript - 如何将事件监听器附加到 JavaScript 变量

javascript - .log 文件的实时更新

html - 循环 JSON 数据未按预期工作

jquery - "Open"回调执行速度太快