问答详情
源自:5-1 JS链式动画

为什么智能实现opacity的替换

// JavaScript Document

function startmove(obj,attr,iTarget,fn){

clearInterval(obj.timer);

obj.timer=setInterval(function(){

//取当前的值

var icur=0;

if(attr=='opacity'){

icur=Math.round(parseFloat(getStyle(obj,attr))*100);

}

else{

icur=parseInt(getStyle(obj,attr));

}

//2算速度

var speed=(iTarget-icur)/8;

speed=speed>0?Math.ceil(speed):Math.floor(speed);

//3.检测停止

if(icur==iTarget){

clearInterval(obj.timer);

if(fn){

fn();}

}

else{ 

if(attr='opacity'){

obj.style.filter='alpha(opacity:'+(icur+speed)+')';

obj.style.opacity=(icur+speed)/100;

}else{

obj.style[attr]=icur+speed+'px';

}

}

},30)


}

function getStyle(obj,attr){

if(obj.currentStyle){

return obj.currentStyle[attr];

}

else{

return getComputedStyle(obj,false)[attr];

}


}


提问者:慕粉2613161 2017-08-02 19:18

个回答

  • 慕斯6506489
    2017-08-04 00:00:36

    //取当前的值

    if(attr=='opacity'){
    icur=Math.round(parseFloat(getStyle(obj,attr))*100);
    }

    //3.检测停止

    if(attr='opacity'){
    obj.style.filter='alpha(opacity:'+(icur+speed)+')';
    obj.style.opacity=(icur+speed)/100;
    }

    上面的代码都判断了有opacity的情况,并在条件语句中做出了反应。