原因:因为有除法,当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