mm2*_*887 0 javascript jquery animation
我一直坐在这里几个小时,无法弄清楚这一点.我正在尝试创建一个无休止地循环播放的幻灯片(3张幻灯片).每张幻灯片都在#slideshow里面.我已经使用调试器完成了这个并且所有变量都设置正确,但我不明白为什么动画实际上不会发生.我有这个,最终显示页面上的所有图像:
$(document).ready(function() {
$slideshow = $('#slideshow');
$slideshowItems = $slideshow.find('li');
$slideshowItems.hide();
nextI = function(x) {
if ((x+1) < $slideshowItems.length) {
return x+1;
}
else {
return 0;
}
}
animation = function(i) {
$slideshowItems.eq(i).fadeIn(500).delay(1000).fadeOut(500, animation(nextI(i)));
}
animation(0);
Run Code Online (Sandbox Code Playgroud)
如果我做:
$slideshowItems.eq(0).fadeIn(500).delay(1000).fadeOut(500,
$slideshowItems.eq(1).fadeIn(500).delay(1000).fadeOut(500,
$slideshowItems.eq(2).fadeIn(500).delay(1000).fadeOut(500));
Run Code Online (Sandbox Code Playgroud)
这可以按预期工作,但它似乎很丑陋,不会循环.
知道为什么我不能让这个工作吗?我觉得这是我对JQuery/JS如何修改DOM或浏览器用于执行动画的序列的期望.感谢您的帮助!
var $slideshowItems = $('#slideshow').find('li'),
i = 0;
(function loop() {
$slideshowItems.eq( i ).fadeIn(500).delay(1000).fadeOut(500, loop);
i = ++i % $slideshowItems.length;
})();
Run Code Online (Sandbox Code Playgroud)