善良阿呆
2016-08-10 20:25
function startmove(obj,itarget){
clearInterval(obj.timer);
var speed=(itarget-obj.offsetWidth)/5;
speed=speed>0?Math.ceil(speed):Math.floor(speed);
obj.timer=setInterval(function(){
if(obj.offsetWidth==itarget){
clearInterval(obj.timer);
}
else{
obj.style.width=obj.offsetWidth+speed+'px';
}
},30)
要放在定时器的函数里面setInterval(function(){ speed部分 },30),定时器是每隔30ms执行一次function(){}函数。如果你把speed部分放在定时器要调用的函数之外,那么只在触发onmouseover的时候计算speed一次,以后每次定时器内部函数被调用的时候不会再计算speed,所以还是不行,这样讲不知道你明白了么
你的obj和itarget是在函数里面定义的,speed放到外面肯定不行啊,而且js是脚本语言,按顺序执行
JS动画效果
113923 学习 · 1443 问题
相似问题