1.flag要放在setInterval回调函数外面声明并初始化为false
2.在setInterval回调函数开头判断flag,false表示动画没有执行完,true表示动画执行完毕需要关闭定时器
3.如果动画没有执行完,则在for..in..循环外将flag置为true,并在循环中分别判断每个动画是否完毕,完毕则不做任何动作,未完毕则执行动画并将flag置为false
2.在setInterval回调函数开头判断flag,false表示动画没有执行完,true表示动画执行完毕需要关闭定时器
3.如果动画没有执行完,则在for..in..循环外将flag置为true,并在循环中分别判断每个动画是否完毕,完毕则不做任何动作,未完毕则执行动画并将flag置为false
2018-01-03
1判断界限的时候如果是==的话,假如运动速度不是整数或者换成不能被界限值整除的数,会一直运动下去,造成边界判断失效,所以判断界限时要用>=或者<=,所以mouseover和mouseout的时候两个函数不能如此简单的整合,加上边界判断,可能还没有分开写简单;2.考虑到事件冒泡,建议用mouseenter和mouseleave.
2018-01-02
clearInterval(timer)其他的都明白,唯独这个不明白 刚刚进入startmove()函数,这个的作用和效果不太明白
2017-12-16
function startMove(obj,goal){
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var speed=(goal-obj.offsetWidth)/8
speed=speed>0?Math.ceil(speed):Math.floor(speed);
if (goal==obj.offsetWidth) {
clearInterval(obj.timer);}
else{obj.style.width=obj.offsetWidth+speed+'px';}
},30)}
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var speed=(goal-obj.offsetWidth)/8
speed=speed>0?Math.ceil(speed):Math.floor(speed);
if (goal==obj.offsetWidth) {
clearInterval(obj.timer);}
else{obj.style.width=obj.offsetWidth+speed+'px';}
},30)}
2017-11-13