未知数量<li>的</li>的jQuery动画

时间:2012-07-09 21:51:34

标签: javascript jquery html css

我知道这段代码非常蹩脚,但它工作得非常好'直到现在所以我保留了它。 但是现在我有太多了&lt; li&gt;并且我不能在js中手动添加它们,因为它在wordpress上并且它取决于类别页面所以&lt;李&每次都改变。

我的问题是; 如何保留该动画并使其与未定义的&lt; li&gt;而不必手动添加它们?有没有办法停止滚动条滚动而不使用css overflow-y:hidden?!

这里的演示: http://jsfiddle.net/NdRDh/

非常感谢!希望你能帮助我!!

汤姆

5 个答案:

答案 0 :(得分:4)

我建议:

$(document).ready(
    function() {
        $('li').each(
            function(i) {
                $(this)
                    .delay(400)
                    .animate(
                        {
                            'top' : '10px'
                        }, 1500 + (500*i));
            });
    });​

JS Fiddle demo

哦,请注意,您为id元素的所有重复了同样的li:这是无效的HTML,如:

  

id = 名称[CS]

     
    

此属性为元素指定名称。该名称在文档中必须是唯一的。

  

(引自:http://www.w3.org/TR/html401/struct/global.html#h-7.5.2

参考文献:

答案 1 :(得分:3)

$('li').each(function(i) {
      $(this).delay(400).animate({'top': '10px'}, (500*i)+1000);
});

示例小提琴:http://jsfiddle.net/NdRDh/6/

作为旁注,您不能拥有多个具有相同ID的元素

答案 2 :(得分:1)

您可以使用each(),如下所示:http://jsfiddle.net/Skooljester/NdRDh/1/

答案 3 :(得分:1)

你有id和class swapped:给他们'common'作为类,他们的类名称为id's然后你可以选择它们并用以下方法调用animate:

 $('li.common').animate(...);

答案 4 :(得分:0)

试试这个:

$("li").each(function(index) {
    $(this).delay(400).animate({'top' : '10px'}), 1000 + 500 * index);
});