[问题] JS 改用marginLeft后的速度变化

楼主: elsa0116 (Fly*晴子)   2014-06-05 14:17:02
这两天开始初碰javascript,
写了一个小DIV在大DIV中跑的程式,
原本依照老师的用法有设相对跟绝对位置,(←有很顺利的跑)
后来改用marginLeft跟marginTop后,
居然出现了奇妙的速度变化....
想问下板上各位先进这是为什么.....囧
作者: mmis1000 (秋月恋枫)   2014-06-05 16:55:00
因为offset是对window的位移,不是对父元素
楼主: elsa0116 (Fly*晴子)   2014-06-05 17:05:00
但是计时器不是有设定时间吗??为什么会造成中间速度不一?
作者: mmis1000 (秋月恋枫)   2014-06-05 17:08:00
因为left跟top每次算时都多出来了啊?所以前后后退的距离不一样更正,应该是对 HTMLElement.offsetParent 的位移
楼主: elsa0116 (Fly*晴子)   2014-06-05 17:50:00
所以只要小DIV设绝对就不会突然慢下了,就是这原因吗@@?
作者: mmis1000 (秋月恋枫)   2014-06-05 18:12:00
^ 看不懂你打啥@@
楼主: elsa0116 (Fly*晴子)   2014-06-05 23:03:00
就是后来我小DIV(id=bb)的样式多设绝对位置,他就有正常跑了@@ 没设的话会跑到一半突然慢下
作者: mmis1000 (秋月恋枫)   2014-06-05 23:20:00
建议你先去w3cschool把box model跟position那两章看完因为绝对位置的定位是相对于,对最接近自身之定位元素而此例中他上面都没有定位元素,因此最接近的默认为body不过做动画根本没必要用offsetTop,直接用变量存上次的位置就好了http://jsbin.com/hudivibo/1/edit#html,output
楼主: elsa0116 (Fly*晴子)   2014-06-06 00:19:00
好QQQQ谢谢您!!!!!我再多研究看看!!非常感谢!!

Links booklink

Contact Us: admin [ a t ] ucptt.com