jQuery中的Noob。
我正试图在图像库中循环,目标是使图像淡入淡出。
这是我的JSFiddle
点击#gallery
每张图片fadeTo(arg1)然后点击fadeTo(args2)。
但我希望他们一个接一个地去
也许应该在链中添加delay
?
非常感谢任何帮助。
答案 0 :(得分:1)
$('img').each
循环的每次迭代视为以下内容:
this
绑定到一个img
元素fade
$(this)
然后,在所有迭代结束后,浏览器将开始在屏幕上同时显示动画(因为所有迭代都已安排)。
要创建顺序行为,您可以为fade
函数提供回调:
$('#gallery').click(function(evt) {
var remainingImages = $("img").toArray();
var processNext = function() {
var image = remainingImages.shift();
if(!image) return;
// Add the next iteration as a callback to the animation
$(image).fadeTo(500, .3).fadeTo(250, 1, processNext);
};
processNext();
});
然后,不是一次安排所有动画,而是会发生这样的事情:
img
元素都存储在remainingImages
数组processNext
函数,从数组中删除第一个图像fade
上的$(image)
,提供一个在动画完成后应该被称为的函数