此视图在运行时显示“est! T
”。这告诉我时机错了
我正在寻找一个显示Test!
的滚动消息,每隔半秒移动一次。
scroll()
function scroll() {
settext("Test! ")
wait(500)
settext(" Test!")
wait(500)
settext("! Test")
wait(500)
settext("t! Tes")
wait(500)
settext("st! Te")
wait(500)
settext("est! T")
wait(500)
}
function wait(a) {
self.setInterval(nothing,a)
}
function nothing() {}
function settext(text) {
document.getElementById("demo").innerHTML = text;
}
答案 0 :(得分:0)
您无法在JavaScript函数中等待。这不是它的工作原理。
当你使用#line2 {
border-bottom: 1px solid black;
display: inline-block;
vertical-align: bottom;
width: 25%;
}
#line1 {
border-bottom: 1px solid black;
display: inline-block;
vertical-align: bottom;
width: 25%;
}
(或setTimeout
)时,发生了什么......你告诉JavaScript在中运行传递的函数一定的毫秒数(或者运行一次每 X毫秒)。它不会在那里运行传递的函数,它会推送到事件队列。
此代码正在执行的操作是调用setInterval
来更改settext()
,然后调用innerHTML
将(另一个)间隔添加到事件队列。
每500毫秒,wait()
功能将触发(这将发生6次......每500毫秒)。
如果您希望文字显示500毫秒然后更改,则必须在nothing
内调用<{1}} 。例如:
settext
正如您所看到的,对于您的所有setTimeout
来电,这可能会有点混乱。您可以做的一件事是使用一个数组来保存所有可能的状态,然后使用一个 settext("Test! ");
setTimeout(function(){
settext(" Test!");
}, 500);
调用来循环它们。
settext