You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery实现循环逐个显示列表项功能不生效,如何修复?

问题错误点
  • setInterval传入的第一个参数是立即执行函数(function x(){...})()的返回值,该函数无return值,实际传给setInterval的是undefined,导致逻辑只会在页面加载完成后执行1次,无法循环触发。
  • 轮询间隔设置不合理,6个列表项逐个显示的总动画时长远超过设置的5000ms,会出现上一轮动画还未执行完毕,下一轮逻辑就触发的时序混乱问题。
  • 每轮动画开始时没有统一隐藏所有已显示的列表项、清空之前的动画队列,遍历中逐个隐藏的逻辑容易出现展示重叠、闪烁、动画累积的问题。
修正后的完整代码

JavaScript 代码

jQuery(document).ready(function($){
  // 定义单次轮播的动画逻辑
  function showItems() {
    // 每轮开始先统一隐藏所有列表项,清空之前残留的动画队列
    const $items = $('ul.banner-point > li');
    $items.hide().clearQueue();
    let delay = 1000;
    $items.each(function() {
      $(this).delay(delay).fadeIn(1850).addClass('text-bigger').delay(100).queue(function(next) {
        $(this).removeClass('text-bigger');
        next();
      });
      delay += 1000;
    });
  }
  // 页面加载完成后先执行第一次动画
  showItems();
  // 间隔时间按实际总动画时长设置:当前6个列表项总动画时长约9.2秒,设置10秒间隔保证上一轮完全跑完再开始下一轮,可按需调整
  setInterval(showItems, 10000);
});

CSS 代码(原有代码无需修改)

.text-bigger {
    font-size: 18px;
    color: #ed3b49;
}

ul.banner-point li {
    display: none;
}

HTML 代码(原有代码无需修改)

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<ul class="banner-point">
    <li style="font-weight: 400;"><span>Point 1</span></li>
    <li style="font-weight: 400;"><span>Point 2</span></li>
    <li style="font-weight: 400;"><span>Point 3</span></li>
    <li style="font-weight: 400;"><span>Point 4</span></li>
    <li style="font-weight: 400;"><span>Point 5</span></li>
    <li style="font-weight: 400;" ><span>Point 6</span></li>
</ul>

内容的提问来源于stack exchange,提问作者iceiceicy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:48:02