已采纳回答 / 追风的少年丶
这个计时器会一直执行,只有clearInterval()才能结束周期执行,所以它是有时间间隔的多次循环,当alpha==iTarget的时候,会执行clearInterval(),这个循环也就结束了
2016-03-31
已采纳回答 / code16
<...code...>更改后的代码,更改有两点:<...code...>和<...code...>之前的形式无法正确调用函数!但是这样的代码跑了之后 就会发现,width会一直增长下去,原因在视频里也提到了,是border的问题,你设置的是cc++,但是每次增长的是3px。改正的方法可以按照视频里提到的,也可以把width的设置放在cc判断的里面(效果是没有前面的方法好,而且依旧是每次增加3px)。
2016-03-30
原因:因为有除法,当offsetLeft值变的越来越小时,最后相除会使speed变成小数,从而offsetLeft与speed相加会有小数,又因显示器的最小像素单位是1px,所以浏览器默认向下取整(变小,即floor),将小数省略,小数省略后,最终的值会变小,从而导致程序无法进入if判断,进入死循环。
这一点可以用console.log(speed)可以验证,speed的log会一直输出,因为程序死循环了。
所以,需要ceil or floor来解决这个问题,让程序进入if的判断,终止循环。
这一点可以用console.log(speed)可以验证,speed的log会一直输出,因为程序死循环了。
所以,需要ceil or floor来解决这个问题,让程序进入if的判断,终止循环。
2016-03-30