修改后的運動框架仍然在同時運行的時候存在bug~希望大家繼續完善修改
//getStyle封裝函數 ????function?getStyle(obj,attr){ ????????if(obj.currentStyle){ ????????????return?obj.currentStyle[attr]; ????????}else{ ????????????return?getComputedStyle(obj,false)[attr]; ????????} ????} ????//運動框架封裝函數 ????function?startMove(obj,json,fn){ ????????clearInterval(obj.timer); ????????obj.timer?=?setInterval(function(){ ????????var?flag=true; ????????for(var?attr?in?json){ ????????????if(attr=='opacity'){ ????????????????var?curStyle=?Math.round(parseFloat(getStyle(obj,attr))*100); ????????????}else{ ????????????var?curStyle?=?parseInt(getStyle(obj,attr)); ????????????} ????????????var?rate?=?(json[attr]-curStyle)/6; ????????????rate?=?rate>0?Math.ceil(rate):Math.floor(rate); ????????????????if(json[attr]?!=?curStyle){ ??????????????????????flag=?false; ??????????????????} ????????????????if(attr=='opacity'){ ????????????????????obj.style.opacity=?(curStyle+rate)/100; ????????????????????obj.style.filter=?'alpha(opacity='+(curStyle+rate)+')'; ????????????????????}else{ ????????????????????obj.style[attr]?=?curStyle+rate+'px'; ????????????????????} ????????????????if(flag){ ????????????????????if(fn){ ??????????????????????????fn() ??????????????????????}else{ ??????????????????????????clearInterval(obj.timer); ??????????????????????} ??????????????????} ????????????????} ????????????},30) ????????}
參考了問答里大家的回復,這個運動框架已經比較完美~
2015-10-20
在評論看到你了,回調函數不能使用,我的解決辦法如下:
【在每次時間間隔開始置flag為true】,就是下面代碼的第6行。
2015-10-15
單個物體html
多個物體html
move-json
這個是我的,測試沒問題。
2015-10-11
if(flag){}應該放到for( ?in ?josn) ?{} 外邊這樣一樓就差不多沒有大的毛病啦!
2015-10-11
在IE中還是運行不了
2015-09-14
2015-09-14
首先要理解for in循環,他們返回屬性名的順序是不可預測的。然后你這個只要有一個滿足,就會執行flag=true,這樣還是一樣不能同時運動。
2015-09-10
還是有問題,在同時運動的時候