我正在处理图像上的某些转换,当用户按下按钮移动到下一个图像时。如果有多幅图像彼此相邻,且图像非常窄,则这些图像将同时进行过渡。所以我检查图像上的宽度,并将精简的图像添加到数组中,然后在数组中的每个对象上运行转换。我想在数组中的每个图像的动画之间创建一个小的延迟,所以我试图在1秒超时后运行我的jQuery.animate。使用setTimeout延迟jQuery动画
下面是我试图让超时没有成功的工作方式:
1.
for (i=0; i < set.length; i++) {
if (i != 0) {
setTimeout(function() { set[i].transitionOut($('#gallery'), 562) }, 100);
} else {
set[i].transitionOut($('#gallery'), 562);
}
}
2.
for (i=0; i < set.length; i++) {
if (i != 0) {
function tempTransition() {
set[i].transitionOut($('#gallery'), 562);
}
setTimeout(tempTransition, 100);
} else {
set[i].transitionOut($('#gallery'), 562);
}
}
3.
for (i=0; i < set.length; i++) {
if (i != 0) {
setTimeout('function() { set[i].transitionOut($("#gallery"), 562) }', 100);
} else {
set[i].transitionOut($('#gallery'), 562);
}
}
transitionOut():
jQuery.fn.transitionOut = function(parent, height) {
this.animate({
height: '0',
top: height + 'px'
}, function() {
$(this).remove();
});
}
我得到它使用CMS的闭包例子。但是,现在我遇到了一个新问题。转换只发生在第二张图片上。当有三个图像就会去动画图像1,延迟,动画图像2,动画图像3.有2和3
这里是新的代码之间没有延迟:
for (i=0; i < set.length; i++) {
(function(i) {
if (i != 0) {
function tempTransition() {
set[i].transitionOut($('#gallery'), 562);
}
setTimeout(tempTransition, 200);
} else {
set[i].transitionOut($('#gallery'), 562);
}
})(i);
}
什么是'transitionOut'功能?你能提供这些代码吗? – 2009-11-30 03:06:36
当然。我已将它添加到我原来的问题中。 – Jonnie 2009-11-30 13:15:12