所谓定时器的管理就是.就是确定元素停止的位置,还有对定时器返回值的管理
关于定时器返回值的建议:一般将定时器的返回值设置为运动元素的一个属性.也就是说 当运动的元素是一个div,那就在div元素上添加一个timer属性,这样可以避免污染变量.而且在对象上添加属性,它的值会被记录知道,对象被销毁.所以不用再全局定义一个变量
<div id="div1"></div>
#div1{ background: red;height: 150px;width: 150px;position: absolute; left: 0px;top: 0px;/*做运动的元素一定要自己指定元素的位置,否则getStyle(e,s) 方法会有不同浏览器兼容问题*/ }
var d=document.getElementById("div1"); d.onclick=function(){ clearInterval(d.timer); d.timer=setInterval(function(){//给元素上绑定一个属性,会记录在这个元素上,并且不会出错 move(d,"left");//此时回调函数的this是window,并不是d } ,1000); } function move(e,s){ e.style.left=parseInt(getStyle(e,s))+10+"px" } function getStyle(e,s){ return e.currentStyle?e.currentStyle[s]:getComputedStyle(e)[s]; }