这个时间有些不对劲

时间:2015-10-09 20:14:27

标签: javascript

此视图在运行时显示“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;
}

1 个答案:

答案 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