1. 程式人生 > >js 多物體運動框架

js 多物體運動框架

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 多物體運動框架