oDiv.offsetLeft = 190具体是如何得到的?
timer = setInterval(function(){
var speed = (iTarget - oDiv.offsetLeft)/20;
// speed = speed>0?Math.ceil(speed):Math.floor(speed);
// if(oDiv.offsetLeft == iTarget){
// clearInterval(timer);
// }else{
oDiv.style.left = oDiv.offsetLeft+speed+"px";
// }
},30)
--------------------------------------------------------------------------------------------------------
描述不是很清楚我重新整理下:
从左向右移入后进行第一轮循环时,
当前#div1 left值为-200,iTarget为0
var speed = (iTarget - oDiv.offsetLeft)/20 ; 应该就是 speed = (0-(-200))/20=10;
那么接下去的
oDiv.style.left = oDiv.offsetLeft+speed+"px"; 应该就是 -200 + 10 + "px" = -190px;
就是移入动作完成后,尚未触发移出事件前,,#div1冒出界面右侧应有10px了,大部分(-190px)应该还是在屏幕左侧看不到),但视频里显示的是left为-8.55px是如何计算出来的呢?见4:46秒
为什么中触发移出事件后,left才得到-190.05px呢?这时iTarget是按一开始传入的-200进行计算吧?那么这时的oDiv.offsetLeft可以自己计算出来吗?offsetLeft是属性可以直接获取,但我不会计算啊. 见5:55秒
有大侠能分析一详细的计算过程到底是怎么回事吗?