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秒
有大俠能分析一詳細的計算過程到底是怎么回事嗎?
2016-11-29
像素有小數時會四舍五入,所以speed小于1大于0.5時還會動,10px左右的時候停止是剛好speed在0.5的分界線
2016-09-24
這是當前距左邊的距離,運動中是不斷變化的,所以速度也是變化的,越接近target,speed越小。
2016-09-24
offsetLeft是屬性啊,直接獲取就可以了