如何使用jQuery逐元素地显示?

时间:2016-02-20 22:24:02

标签: javascript jquery

对不起,如果我写错了:(

我获得了成功,但如果我有很多段落可以逐一展示?

$(document).ready(
    function(){
        $("#click").click(
            function() {
                $("body").append("<p class='add'>joaoao</p>");
                $("p.add").fadeIn("slow", function(){
                    $("body").append("<p class='add'>joaoao</p>");
                    $("p.add").fadeIn();
                });

            }
        );
    }
);

3 个答案:

答案 0 :(得分:0)

我会稍微重构代码,以便所有段落都已存在于HTML中。然后,只需逐一展示它们 - 每次都显示第一个仍然隐藏的东西。我为函数命名,以递归方式将其称为回调。

        $("#click").click(
            function fadeIn() {
                $("p:hidden").first().fadeIn("slow", fadeIn);

            }
        );

Here's a working fiddle.

答案 1 :(得分:0)

您可以编写简单的音序器:

&#13;
&#13;
function startSequence(selector) {
  var idx = 0;
  var seq = $(selector);

  var id = window.setInterval( function() { 
     if( idx >= seq.length ) {
       window.clearInterval(id);
       return;
     }
     $(seq[idx]).addClass("shown");
     ++idx;
   }, 1000 );
}

startSequence("p");
&#13;
p { color:transparent; background-color:transparent; }
p.shown { color:#000; background-color:gold; transition: all linear 1s; }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>1111111111111111</p>
<p>2222222222222222</p>
<p>33333333333333</p>
<p>344444444444444</p>
<p>5555555555</p>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我在这个例子中取得了成功:

RecyclerView

以下p标记仅在最后一次停止动画后出现。 谢谢你的帮助!