添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

setTimeout() 是属于 window 的方法,该方法用于在指定的毫秒数后调用函数或计算表达式。

语法格式可以是以下两种:

setTimeout(要执行的代码, 等待的毫秒数)
setTimeout(JavaScript 函数, 等待的毫秒数)

接下来我们先来看一个简单的例子:

setTimeout ( " alert('对不起, 要你久候') " , 3000 )
尝试一下 »

在测试代码中我们可以看到页面在开启三秒后, 就会出现一个 alert 对话框。

setTimeout() 是设定一个指定等候时间 (单位是千分之一秒, millisecond), 时间到了, 浏览器就会执行一个指定的代码, 如下图:

setTimeout("changeState()",3000 ); function changeState(){ let content=document.getElementById('content'); content.innerHTML=" < div style =' color:red ' > 我是三秒后显示的内容! </ div > "; </ script > 尝试一下 »

实例中设定了等待 3 秒 (3000 milliseconds) 后浏览器就会执行 changeState( ) 这一个函数。

接下来我们可以通过 setTimeout() 不断执行指定函数来实现一个计数器:

尝试一下 »

实例中页面在载入后执行 countSecond() 函数,该函数内使用了 setTimeout() 方法,该方法在每隔一秒调用 countSecond() 函数,所以最终会导致 countSecond( ) 每秒执行一次,实现计数效果。

当然我们也可以在计数器的函数上添加一些片段,实现在指定条件下停止计数:

< input type = " text " id = " displayBox " name = " displayBox " value = " 0 " > < script > x = 0 function countSecond() if(x < 20 ) { x = x + 1 document . getElementById ( " displayBox " ). value = x setTimeout ( " countSecond() " , 1000 ) // 执行函数 countSecond () </ script >
尝试一下 »

实例中在 x 小于 20 的时候会每秒执行一次 countSecond() 函数,在 x 大于等于20 的时候就会停止执行。

既然有开始计数,那么相对应的就要有停止计数,停止计时使用的函数为 clearTimeout()。

setTimeout() 方法可以使到浏览器不断执行一段代码或一个函数 当一个 setTimeout( ) 开始了循环的工作, 我们要使它停下来, 可使用 clearTimeout( ) 这方法。

clearTimeout() 语法:

clearTimeout(timeoutID)

timeoutID 为调用 setTimeout() 函数时所获得的返回值,使用该返回标识符作为参数,可以取消该 setTimeout() 所设定的定时执行操作。

meter1 =setTimeout("count1()", 1000)
meter2 =setTimeout("count2()", 1000)

使用 meter1 与 meter2 作为 timeoutID 的名称, 在设定 clearTimeout( ) 时, 就可指定对哪一个 setTimeout() 有效, 不会影响另一个 setTimeout() 的操作。

如下实例:

< form name = " display1 " > < input type = " text " id = " box1 " name = " box1 " value = " 0 " size = " 4 " /> < input type = " button " value = " 停止计时 " onclick = " clearTimeout(meter1) " /> < input type = " button " value = " 继续计时 " onclick = " count1() " /> </ form > < p > </ p > < form name = " display2 " > < input type = " text " id = " box2 " name = " box2 " value = " 0 " size = " 4 " /> < input type = " button " value = " 停止计时 " onclick = " clearTimeout(meter2) " /> < input type = " button " value = " 继续计时 " onclick = " count2( ) " /> </ form > < script > x = 0 y = 0 function count1( ) x = x+ 1 document.getElementById("box1").value= x meter1=setTimeout("count1()", 1000) function count2( ) y = y+ 1 document.getElementById("box2").value= y meter2=setTimeout("count2()", 1000) // 执行函数 count1( ) count2( ) </ script >
尝试一下 »

Window 对象: setTimeout() 方法

Window 对象: setTimeout() 方法

Window 对象: setInterval() 方法