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)
--------------------------------------------------------------------------------------------------------
描述不是很清楚我重新整理下:
從左向右移入后進(jìn)行第一輪循環(huán)時(shí),
當(dāng)前#div1 left值為-200,iTarget為0
var speed =?(iTarget - oDiv.offsetLeft)/20 ; ?應(yīng)該就是 speed = (0-(-200))/20=10;
那么接下去的
oDiv.style.left = oDiv.offsetLeft+speed+"px"; ?應(yīng)該就是 -200 + 10 + "px" = -190px;
就是移入動(dòng)作完成后,尚未觸發(fā)移出事件前,,#div1冒出界面右側(cè)應(yīng)有10px了,大部分(-190px)應(yīng)該還是在屏幕左側(cè)看不到),但視頻里顯示的是left為-8.55px是如何計(jì)算出來的呢?見4:46秒
為什么中觸發(fā)移出事件后,left才得到-190.05px呢?這時(shí)iTarget是按一開始傳入的-200進(jìn)行計(jì)算吧?那么這時(shí)的oDiv.offsetLeft可以自己計(jì)算出來嗎?offsetLeft是屬性可以直接獲取,但我不會(huì)計(jì)算啊.?見5:55秒
有大俠能分析一詳細(xì)的計(jì)算過程到底是怎么回事嗎?
2016-11-29
像素有小數(shù)時(shí)會(huì)四舍五入,所以speed小于1大于0.5時(shí)還會(huì)動(dòng),10px左右的時(shí)候停止是剛好speed在0.5的分界線
2016-09-24
這是當(dāng)前距左邊的距離,運(yùn)動(dòng)中是不斷變化的,所以速度也是變化的,越接近target,speed越小。
2016-09-24
offsetLeft是屬性啊,直接獲取就可以了