我有一個HTML表單,當前有一個空的佔位符值。jQuery佔位符動畫
TypingEffect()
隨機選擇八個示例中的一個,然後調用type()
將它們輸出爲佔位符。然後,在2000年的時間間隔後,它會施加擦除效果。
我認爲我的問題在於我的語法,更具體地說是TypingEffect()
函數,但我無法弄清楚。
HTML:
<form action="" method="get" type="search">
<input type="text" class="textbox" placeholder='' />
</form>
的Javascript + jQuery的:
$(document).ready(function() {
setInterval ('cursorAnimation', 600);
textbox = $('.textbox');
setInterval ('TypingEffect', 600);
setInterval ('ErasingEffect', 2000);
});
function TypingEffect() {
var tag = Math.floor((Math.random() * 10) + 1);
if (tag = 1) { caption = "Example1" }
if (tag = 2) { caption = "Example2" }
if (tag = 3) { caption = "Example3" }
if (tag = 4) { caption = "Example4" }
if (tag = 5) { caption = "Example5" }
if (tag = 6) { caption = "Example6" }
if (tag = 7) { caption = "Example7" }
if (tag = 8) { caption = "Example8" }
type();
}
function type() {
textbox.attr("placeholder", (caption.substr(0, captionLength++)));
if(captionLength < caption.length+1) {
setTimeout('type()', 50);
} else {
captionLength = 0;
caption = '';
}
}
function ErasingEffect() {
caption = captionEl.html();
captionLength = caption.length;
if (captionLength>0) {
erase();
}
}
function erase() {
textbox.attr("placeholder",(caption.substr(0, captionLength--)));
if(captionLength >= 0) {
setTimeout('erase()', 50);
} else {
captionLength = 0;
caption = '';
}
}
使用'setInterval(TypingEffect,xxx)',而不是字符串'TypingEffect()'。你也不必用'()'調用函數,你只是想傳遞函數,而不是調用它。旁註:你可以用開關,對象或者數組替換整個'if(tag = x)'序列並保存大量代碼。 – Shilly
「cursorAnimation」在哪裏? – Viney