聽的云里霧里,出問題了,麻煩幫我看看
function onmove(obj,json,fn){?
clearInterval(obj.timer);
var oar=0;
obj.timer=setInterval(function(){
var flag=true; //假設
for(var attr in json){
if(attr=="opacity"){
oar=getStyle(obj,attr)*100;
}else{
oar=parseInt(getStyle(obj,attr));
} ? ? ? ??
var speed=oar<json[attr]?10:-10;?
if(oar!=json[attr]){
flag=false; //假設全部都沒有實現完成
}
if(attr=="opacity"){
obj.style[attr]=(oar+speed)/100;
obj.style.filter='Alpha(opacity:'+oar+speed+')';
}
else{
obj.style[attr]=oar+speed+'px';
}//要把這里的style.attr改成style[attr]
}
if(flag==true){ //全部都實現了
clearInterval(obj.timer);
if(fn){
fn();
}
}
},30);
}
//方法封裝--獲取屬性
function getStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];//IE瀏覽器
}else{
return getComputedStyle(obj,false)[attr];//火狐瀏覽器
}
}
2016-02-20
第八行 oar=getStyle(obj,attr)*100;中getStyle(obj,attr)需要用parseFloat()函數轉換為數字,再四舍五入提高準確度。oar=Math.round( parseFloat( getStyle(obj,attr) )*100);另外你的速度有問題,建議提高精確度采用緩沖動畫,防止邊緣抖動。