現場演示:http://jsfiddle.net/xHnzP/1/
var spans = $('span.fadeText');
function loop(span) {
span.fadeIn(1000).delay(1000).fadeOut(1000, function() {
loop(span.next().length ? span.next() : spans.first());
});
}
loop(spans.first());
順便說一句,上面的代碼變淡無限循環的跨度元件。如果你只是想走線槽全部一次,那麼代碼更簡單:
現場演示:http://jsfiddle.net/xHnzP/2/
var spans = $('span.fadeText');
function loop(span) {
span.fadeIn(1000).delay(1000).fadeOut(1000, function() {
span.next().length && loop(span.next());
});
}
loop(spans.first());
UPDATE
我沒沒有注意到你想讓最後一個SPAN保持可見狀態。以下是更新後的代碼:
現場演示:http://jsfiddle.net/xHnzP/5/
var spans = $('span.fadeText');
function loop(span) {
span.fadeIn(1000, function() {
span.next().length && span.delay(1000).fadeOut(1000, function() {
loop(span.next());
});
});
}
loop(spans.first());
你可以看到,不同的是弗里斯特兩個版本(上圖),這第三個版本需要兩個嵌套的回調(淡入後,檢查它是否是最後一個SPAN,並在淡出後調用該功能的下一個循環)。
此外,如果您無法解決這個問題,span.next().length
是一個檢查,根據當前一個SPAN是否至少有一個SPAN,返回true/false(acutally 1/0)。
+1遞歸。 – jmort253 2011-01-24 04:15:20
這正是我想要完成的,除了最後一部分 - 保持最後的跨度可見,而不是淡出它。換句話說,啓發...(淡入)創新...(淡入)INGENIOUS(停止) – NightMICU 2011-01-24 04:21:40
更新爲符合要求。 – mVChr 2011-01-24 04:25:25