为了账号安全,请及时绑定邮箱和手机立即绑定

为什么把速度放在外面就不行呢?每次每个对象startmove方法调用时应该会重新获取速度值才对晒

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)



正在回答

2 回答

要放在定时器的函数里面setInterval(function(){ speed部分  },30),定时器是每隔30ms执行一次function(){}函数。如果你把speed部分放在定时器要调用的函数之外,那么只在触发onmouseover的时候计算speed一次,以后每次定时器内部函数被调用的时候不会再计算speed,所以还是不行,这样讲不知道你明白了么

0 回复 有任何疑惑可以回复我~

你的obj和itarget是在函数里面定义的,speed放到外面肯定不行啊,而且js是脚本语言,按顺序执行

0 回复 有任何疑惑可以回复我~
#1

善良阿呆 提问者

我是放在startmove函数里面,没有放在定时器函数里面,每次对象触发startmove函数时那speed也会重新赋值到当前对象啊,我这儿始终没有转过弯呢???
2016-08-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么把速度放在外面就不行呢?每次每个对象startmove方法调用时应该会重新获取速度值才对晒

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信