我试图找到逐个动画项目列表的最佳方式。
例如,我有一个带有7个项目的UL,当点击我的触发元素时,我希望每个项目在一个下面淡入淡出,每个项目之间稍有延迟。
任何想法都会受到最高的赞赏。
由于
答案 0 :(得分:9)
您可以使用伪递归:
function fadeItem() {
$('ul li:hidden:first').fadeIn(fadeItem);
}
这将淡入第一个隐藏项目,并在动画结束时调用自身,淡化第二个项目 在最后一个项目中淡出后,选择器将不匹配任何内容,因此它将停止。
要在每个淡入淡出之间添加延迟,您可以调用jQuery的delay
method,如下所示:
function fadeItem() {
$('ul li:hidden:first').delay(500).fadeIn(fadeItem);
}
答案 1 :(得分:0)
var slightdelay = 100; // in milliseconds
function fadeOneIn()
{
$("ul li:not(:visible):first").fadeIn(function() { setTimeout(fadeOneIn, slightdelay); });
}
$("#trigger").click(fadeOneIn);
答案 2 :(得分:0)
假设:
<ul class="fadein">
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
和CSS:
ul.fadein li { display: none; }
运行:
$(function() {
fade_in_next();
});
function fade_in_next() {
$("ul.fadein > li:hidden:first").fadeIn("slow", function() {
setTimeout(fade_in_next, 500);
});
}