希望這是一個簡單的請求。我發現這個代碼完全適合我想做的事(在淡入淡出時旋轉列表項)http://jsfiddle.net/gaby/S5Cjm/1/。但是,我正在尋找將鼠標懸停在動畫上並在鼠標上恢復的動畫。目前,我是一個新手,用Javascript和JQuery,所以任何幫助,將不勝感激。需要幫助暫停/恢復淡入和淡出
謝謝。
編輯:側面問題:使用JQuery來做這件事有沒有好處?一個獨立的腳本會更合適嗎?
希望這是一個簡單的請求。我發現這個代碼完全適合我想做的事(在淡入淡出時旋轉列表項)http://jsfiddle.net/gaby/S5Cjm/1/。但是,我正在尋找將鼠標懸停在動畫上並在鼠標上恢復的動畫。目前,我是一個新手,用Javascript和JQuery,所以任何幫助,將不勝感激。需要幫助暫停/恢復淡入和淡出
謝謝。
編輯:側面問題:使用JQuery來做這件事有沒有好處?一個獨立的腳本會更合適嗎?
我將懸停事件附加到您的列表項。 over函數使用jQuery.stop(true)停止動畫和所有後續動畫。該輸出功能恢復動畫:
var duration = 1000
function InOut(elem) {
elem.delay(duration).fadeIn(duration).delay(duration).fadeOut(
function() {
if (elem.next().length > 0) {
InOut(elem.next());
}
else {
InOut(elem.siblings(':first'));
}
});
}
$(function() {
$('#content li').hide().hover(
function() {
$(this).stop(true)
},
function() {
var curOp = Number($(this).css("opacity"));
$(this).fadeTo(duration*(1-curOp), 1, function() {
InOut($(this))
});
}
);
InOut($('#content li:first'));
});
$(function(){
var active;
$('#content li').hide().hover(
function(){
active = $(this).stop();
},
function(){
active && InOut(active);
}
);
InOut($('#content li:first'));
});
這似乎就會失控,如果列表項懸停在動畫漸變之前完成。 – IMI 2011-03-24 17:40:51
這非常接近。但是,如果我更改動畫值(允許爲淡入淡出和延遲表示1000),並且在動畫期間將鼠標懸停/放出,似乎會將該特定列表項的不透明度重置爲懸停時的不透明度。因此,如果我將鼠標懸停在外,因爲列表項目剛剛開始淡入,它將變得基本不可見。有任何想法嗎?謝謝。 – IMI 2011-03-24 17:38:15
只是有一個想法。是否有一種簡單的方法可以在懸停時將不透明度設置爲100%?這能解決問題嗎? – IMI 2011-03-24 17:56:21
我更新了代碼,所以現在它會在您懸停時檢查當前的不透明度。然後確定動畫應該持續多長時間並在該時間內完成動畫。只需首先設置持續時間變量。例如,如果動畫完成了50%,那麼不透明度將爲0.5。對於1000ms的持續時間,代碼將在500ms內將動畫從0.5增加到1,然後繼續循環。 – Adam 2011-03-24 17:58:19