簡體   English   中英

jquery多元素淡入淡出循環

[英]jquery multiple elements fade in and out cycle

您好,我創建了 3 個帶有 ID 的元素(rt-1、rt-2、rt-3)

<div class="body-wd06as">
<p>Free<span id="rt-1" style="color: #FE2C55;">views</span>
<span id="rt-2" style="color: #FE2C55;">followers</span>
<span id="rt-3" style="color: #FE2C55;">likes</span>
</p>
</div>

我想讓它不斷使一個元素淡出,另一個元素淡入(rt-1 元素淡入淡出,rt-2 元素淡入淡出,rt-3 元素淡入淡出退出然后 rt-1 元素再次淡入......&循環繼續。)

我最初使這 3 個元素在 css 中不可見:

#rt-1{
  display: none;
}

#rt-2{
  display: none;
}

#rt-3{
  display: none;
}

jQuery代碼:

  $(function ()
  {
      var $element1 = $('#rt-1');
      var $element2 = $('#rt-2');
      var $element3 = $('#rt-3');
      setInterval(function () {
          $element1.fadeOut(1000);
          $element2.fadeIn(1000);
          $element2.fadeOut(1000);
          $element3.fadeIn(1000);
          $element3.fadeOut(1000);
          $element1.fadeIn(1000);

      }, 0);
  });

但它沒有按預期工作

您根本不需要setInterval
根據文檔fadeIn()fadeOut()將函數作為第二個參數,您可以在其中調用另一個步驟。

例如:

 $(() => { const $element1 = $('#rt-1'); const $element2 = $('#rt-2'); const $element3 = $('#rt-3'); let step = -1; const fadeAnimate = () => { step = (step >= 5) ? 0 : (step + 1); switch (step) { case 0: $element1.fadeIn(1000, fadeAnimate); break; case 1: $element1.fadeOut(1000, fadeAnimate); break; case 2: $element2.fadeIn(1000, fadeAnimate); break; case 3: $element2.fadeOut(1000, fadeAnimate); break; case 4: $element3.fadeIn(1000, fadeAnimate); break; case 5: $element3.fadeOut(1000, fadeAnimate); break; } }; fadeAnimate(); });
 .rt { display: none; color: #FE2C55; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="body-wd06as"> <p> Free <span id="rt-1" class="rt">views</span> <span id="rt-2" class="rt">followers</span> <span id="rt-3" class="rt">likes</span> </p> </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM