关于《JS动画效果》课程的疑问,以下代码无法进行链式动画,原因是什么?


function getStyle(obj,attr){

if(obj.currentStyle){

return obj.currentStyle[attr];

}else{

return getComputedStyle(obj,false)[attr];

}

}

//startMove(obj,{attr1:iTarget,attr2:iTarget},fn);

var alpha = 30;

function startMove(obj,json,fn){

var flag = true;//假设

clearInterval(obj.timer);

obj.timer=setInterval(function(){

for (var attr in json){

//1.取当前值

var icur = 0;

if(attr == 'opacity'){

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

}else{

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

}

//2.算速度

var speed=(json[attr]-icur)/8;

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

//3.检测停止

if(icur!=json[attr]){

flag = false;

}

if(attr == 'opacity'){

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

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

}else{

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

}

}

if(flag){

clearInterval(obj.timer);

if(fn){

fn();

}

}

},30);

}


陈大鱼头
浏览 1565回答 1
1回答

怪盗饭团

亲,课程视频的问题,你最好就在课程的问答就提出。主要那些都是和你看过同样视频的人,好回答这些问题
打开App,查看更多内容
随时随地看视频慕课网APP