js 多物體運動框架
阿新 • • 發佈:2017-05-14
eight 設置 bsp htm 目標 floor class width h+
多物體運動框架
例子:多個Div,鼠標移入biankuan
單定時器,存在問題
每個Div一個定時器
總結:
參數問題:
當運動當前的div的時候可以傳參數
onStart(obj,tag);
obj為當前運動的div 調用時用this
tag表示運動的終點距離
開一個定時器(當三個div一起運動時會卡)
所以利用for循環開三個定時器
步驟:
1.設置定時器 var timer=null;
2.關閉定時器
clearInterval(obj.timer);
3.開啟定時器:
obj.timer=setInterval(function(){},30);
4.緩沖時設置速度 並且要取整
5.判斷當前位置與目標位置是否相等
<!doctype html> <html> <head> <meta charset="utf-8"> <title>無標題文檔</title> <style> div{width:200px; height:50px; background:#F00; margin:10px; } </style> <script> window.onload=function(){ var aDiv=document.getElementsByTagName(‘div‘); for(var i=0;i<aDiv.length;i++){ aDiv[i].timer=null; aDiv[i].onmouseover=function(){ onStart(this,400); }; aDiv[i].onmouseout=function(){ onStart(this,100); }; } } //var timer=null; function onStart(obj,tag){ clearInterval(obj.timer); obj.timer=setInterval(function(){ var speed=(tag-obj.offsetWidth)/6; speed=speed>0?Math.ceil(speed):Math.floor(speed); if(obj.offsetWidth==tag){ clearInterval(obj.timer); }else{ obj.style.width=obj.offsetWidth+speed+‘px‘; } },30); } </script> </head> <body> <div></div> <div></div> <div></div> </body> </html>
js 多物體運動框架