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

speed定义那两条代码为什么不能写在计时器外面?我试过效果不一样,但我觉得表达意思一样啊?求大神解惑

function startMove(obj,iTarget){

var speed=(iTarget-obj.offsetWidth)/10;

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

clearInterval(obj.timer);

obj.timer=setInterval(function(){

//var speed=(iTarget-obj.offsetWidth)/10;

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

if(obj.offsetWidth==iTarget){

clearInterval(obj.timer);

}else{

obj.style.width=obj.offsetWidth+speed+"px"

}

},30);

}


正在回答

2 回答

你写在外面只是在start的时候对spend更新了一次,计时器运行时速度不再更新,所以整个过程中速度其实是恒定的,而写在计时器内部,则是每30ms更新一下速度,使速度减慢,这样才达到了缓冲的效果。

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

qq_空之岚_0 提问者

非常感谢!
2016-12-04 回复 有任何疑惑可以回复我~

举个例子吧,比如说赛跑吧,老师喊预备跑的时候,你才开始跑对吧,然后这个时间已经在走了,但是是先开始你才跑的,所以这个也一样,是计时在前

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

举报

0/150
提交
取消

speed定义那两条代码为什么不能写在计时器外面?我试过效果不一样,但我觉得表达意思一样啊?求大神解惑

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