在前端开发过程中,如果使用传统的纯js,有时会有延时执行一个方法的需求.
使用js实现几秒以后倒计时跳转,这个在某些特殊情况下还是比较实用的。
setTimeout("test()","2000") //2000毫秒后执行test()函数,只执行一次。setInterval("test()","2000")//每隔2000毫秒执行一次test()函数,执行无数次。
扩展资料:
1、setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
2、语法:setTimeout(function, milliseconds, param1, param2, ...)。
3、提示: 1000 毫秒= 1 秒。
4、提示: 如果你只想重复执行可以使用 setInterval() 方法。
5、提示: 使用 clearTimeout() 方法来阻止函数的执行。
6、所需参数1:code/function,必需。要调用一个代码串,也可以是一个函数。
7、所需参数2:milliseconds可选。执行或调用 code/function 需要等待的时间,以毫秒计。默认为 0。
8、所需参数3:param1, param2, ...,可选。 传给执行函数的其他参数(IE9 及其更早版本不支持该参数)。
9、返回值:返回一个 ID(数字),可以将这个ID传递给 clearTimeout() 来取消执行。
10、实例:var myWindow=window.open("","","width=200,height=100")myWindow.document.write("<p>这是一个新窗口'</p>")setTimeout(function(){ myWindow.close() }, 3000)
延迟执行,一般是用定时器,定时器有两种,一种是setInterval,另一个是setTimeout。
setInterval,是间隔执行,次数为无限次。
setTimeout,是隔一段时间,执行一次。
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
setTimeout() 和setInterval() 几乎是一样的,仅执行次数不同和单词不同而已。关闭setTimeout() 是用clearTimeout()
下面举一个setInterval的例子,仅供参考:
<style>div {width:100px height:100px position:absolute top:50px left:50px background:#ccc}
</style>
<script>
window.onload=function(){
var oDiv = document.getElementById('div1')
var nLeft = parseInt(oDiv.currentStyle?oDiv.currentStyle.left:getComputedStyle(oDiv,false).left)
var timer = setInterval(function(){ //开启定时器,
nLeft++
document.title=nLeft
oDiv.style.left=nLeft+'px'
if(nLeft == 500)
{
clearInterval(timer) //当left值为500时,关闭定时器。
}
},30)
}
</script>
</head>
<body>
<div id="div1"></div>