2
我有一個標題文本,我想淡入一個框。 之後,字幕應該在其下方淡出。 一旦兩者都可見,它們應該淡出,並且下一組應該以相同的方式淡入。像jQuery一樣的文字衰落
但是,我已經創建了,但是我對它的運行狀況感到懷疑,也就是說,如果瀏覽器需要很多CPU。我的一個擔心是Javascript的遞歸深度。
我有以下的代碼(我也包括在的jsfiddle,CSS和HTML一起http://jsfiddle.net/ukewY/1/)
var no = 3;
function fadeText(id) {
// Fade in the text
$("#text" + id).animate({
opacity: 1,
left: '+=50'
}, 5000, function() {
// Upion completion, fade in subtext
$("#subtext" + id).animate({
opacity: 1,
}, 5000, function() {
// Upon completion, fade the text out and move it back
$("#subtext" + id).animate({
opacity: 0,
}, 1000, function() {
$("#text" + id).animate({
opacity: 0,
left: '+=200'
}, 3000, function() {
// Yet again upon completion, move the text back
$("#text" + id).css("left", "19%");
$("#subtext" + id).css("left", "10%")
fadeText((id % no) + 1);
});
});
});
});
}
$(document).ready(function() {
fadeText(1);
});
我的問題是,如果這是這樣做的正確方法;或者如果有更好的,也許沒有遞歸的方法呢?
PS。因爲這是一個網站的旗幟,我不擔心id
是大的,因爲人們可能從那以後就開始了。
太棒了!非常感謝你。然而,我的_hate_'if'-子句,所以我用這個替換了:'titleid =(titleid + 1)%$ text.length;' –
我不知道你在那裏用那個百分比/模運算符在做什麼。它實際上很好地工作。它比if語句更有效率嗎?這就是爲什麼你不喜歡陳述或是否有其他原因?它也可以在titleid =(titleid == 2)?0:titleid + 1;但我想這只是一個僞裝,如果聲明 – Grezzo
是的,這幾乎是主要原因。如果我不能使用'if'子句,你就不能編碼,但是如果我能阻止它,我會以不同的方式做。它通常也更快:) –