我正在處理圖像上的某些轉換,當用戶按下按鈕移動到下一個圖像時。如果有多幅圖像彼此相鄰,且圖像非常窄,則這些圖像將同時進行過渡。所以我檢查圖像上的寬度,並將精簡的圖像添加到數組中,然後在數組中的每個對象上運行轉換。我想在數組中的每個圖像的動畫之間創建一個小的延遲,所以我試圖在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