链式调用一定要鼠标移出再移进去才会执行第二个程序 为什么?

来源:6-2 完美运动框架

歌风on

2016-01-24 16:47

function getStyle (obj,attr) {

if(obj.currentStyle){

return obj.currentStyle[attr];

}else{

return getComputedStyle(obj,null)[attr];

}

}


function startMove(obj,json,func){

var flag=true;

clearInterval(obj.timer);

obj.timer=setInterval(function(){

for(var attr in json){

//取当前值

var iCur=0;

if(attr=='opacity')

{

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

}

else{

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

}

//算速度

var speed=(json[attr]-iCur)/10;

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


//判断移动是否完成

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(func){

func();

}


}

},50)

}


写回答 关注

1回答

  • 清波
    2016-01-25 13:51:23

    将 

    var flag=true;

    放在 定时器里面, for循环外面

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题