js定时器的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js定时器的问题相关的知识,希望对你有一定的参考价值。
num刚开始等于0,怎么在定时器里实现,num一直+=1;达到100后又一直-=1;等于0时又+=1,一直这样循环下去,注意是在定时器里,不是在循环里!
(function ()var num = 0,
step = 1;
setInterval(function ()
num += step;
if (num === 0 || num === 100)
step *= -1;
, 100)
)(); 参考技术A 定时器也是实现循环
js定时器问题?js高手请进!
今天写了个js定时器的问题: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css"/> <script language="javascript"> window.onload=function() var t=null; var i=0; function a() i++; console.log(i); if(i==20) clearTimeout(t); t=setTimeout(a,10); a(); </script> </head> <body> <div id="div1"></div> </body> </html> 这样一个函数,在火狐下,输出到32,在ie和chrome下会一直执行。为什么?分析一下原因。 而在下面这个程序中,点击“end"为什么可以彻底关掉定时器。 <html> <head> <script type="text/javascript"> var c=0 var t function timedCount() document.getElementById('txt').value=c c=c+1 t=setTimeout("timedCount()",100) function stopCount() clearTimeout(t) </script> </head> <body> <form> <input type="button" value="start" onClick="timedCount()"> <input type="text" id="txt"> <input type="button" value="end" onClick="stopCount()"> </form> </body> </html> 为什么?第一个函数明显没有关掉定时器,第二个程序定时器没有关掉。
参考技术A 其实很好理解,你点击一次按钮,相当于叫一个人过去,每隔300毫秒把div移动一下;你点两次,就相当于让两个人去干同样的事情,都是每隔300毫秒移动一次div,但是,假设过了300毫秒,第一个人过去移动了div,第二个人也会过去移动div,就相当于每隔300毫秒移动两倍原来的距离。你点多了,自然就移动的快。比如说你第一次点击后,间隔100毫秒点击第二次,那么第一个人在移动div后,第二个人间隔100毫秒后也会去移动div。以上是关于js定时器的问题的主要内容,如果未能解决你的问题,请参考以下文章