问答详情
源自:3-1 JS缓冲动画

flet不等于itarget为什么就停在了-190.5不是应该继续走么,这时候速度为-9.5啊

麻烦老师看下

提问者:邱诗伦 2016-03-29 08:23

个回答

  • 邪君灬无情
    2016-05-18 12:01:32

    因为px是没有小数的,-190.5浏览器会默认为-190,把小数省略掉,这是speed等于-200-(-190)/20为-0.5,然后又算出oDiv.style.left=-190+(-0.5)=-190.5,然后浏览器又会省略掉小数,使当前值为-190,然后又计算出speed为-0.5,陷入一个死循环,无法继续执行下去。

  • 漩涡鸣人007
    2016-03-29 10:39:58

    我不是老师,斗胆帮你解答一下。

    在speed不取整的情况下,根据speed=(iTarget-oDiv.offsetLeft)/20和oDiv.style.left=oDiv.offsetLeft+speed这两句来分析。因为left和offsetLeft是没有小数点的,所以speed是多出来的小数即-0.5,当iTarget=0时,speed=-0.5,根据speed=(iTarget-oDiv.offsetLeft)/20推算出offsetLeft=-190。根据oDiv.style.left=oDiv.offsetLeft+speed推算出left=-190.5