同意@paPa_PA 的回答 offsetWidth包含了边框,而clientWidth只包含了内边距和内容不包含外边框 更加方便
由于onmouseover事件冒泡,所以当鼠标在a标签内不断移动(不出a标签的范围)会不断碰到a标签内的子元素,事件再冒泡到a,使得不断出发a.onmouseover事件,结果就是里面的小图片不停地动,改成onmuseenter,这个事件不冒泡或者写代码取消onmouseover的冒泡。
2016-02-26
当要获取float属性的时候,使用键值会有bug。
IE:obj.style["styleFloat"]
其他:obj.style["cssfloat"]
IE:obj.style["styleFloat"]
其他:obj.style["cssfloat"]
2016-02-26
为了解决这个问题,Math.ceil就派上用场了,它会把0.75向上取整为1,这样div就又可以向右移动1px了,这时里目标点很近了,就以1的速度慢慢到达300,然后停止定时器。
同理,向左移动,计算出来的速度会是负值比如-0.75,就用Math.floor把速度向下取整为-1,这样,就避免了卡在某个像素点不动的问题。
Math.floor还是ceil这些运算的目的不是要把speed取到0,而是要让浏览器可以继续运算下去,然后用我们的if条件判断,等于itarget了就结束运动。
同理,向左移动,计算出来的速度会是负值比如-0.75,就用Math.floor把速度向下取整为-1,这样,就避免了卡在某个像素点不动的问题。
Math.floor还是ceil这些运算的目的不是要把speed取到0,而是要让浏览器可以继续运算下去,然后用我们的if条件判断,等于itarget了就结束运动。
2016-02-22
由于数值设置的原因,div移动到一定px后,进行相减再除20的运算后会出现小数,比如0.75,比如这时div移动到了290,程序里写到div的left=oDiv.offsetLeft+speed+'px',那么div的left就是290.75px,而浏览器是不允许出现小数的,会把0.75去掉,那么div的left就成了290,下次执行时div的left是290,算出来速度还是0.75,浏览器又省略了小数,结果就是div停在了290px,到不了目标点300。
2016-02-22