亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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秒

http://img1.sycdn.imooc.com//57e67ef40001cb1d08510438.jpg


為什么中觸發移出事件后,left才得到-190.05px呢?這時iTarget是按一開始傳入的-200進行計算吧?那么這時的oDiv.offsetLeft可以自己計算出來嗎?offsetLeft是屬性可以直接獲取,但我不會計算啊.?見5:55秒

http://img1.sycdn.imooc.com//57e67ed30001fe8106980405.jpg



有大俠能分析一詳細的計算過程到底是怎么回事嗎?


正在回答

3 回答

像素有小數時會四舍五入,所以speed小于1大于0.5時還會動,10px左右的時候停止是剛好speed在0.5的分界線

0 回復 有任何疑惑可以回復我~

這是當前距左邊的距離,運動中是不斷變化的,所以速度也是變化的,越接近target,speed越小。

0 回復 有任何疑惑可以回復我~
#1

weibo_

問題是只要oDiv.offsetLeft與iTarget不相等,移動就不會停下來,那么最后為啥會出現left=-8.55px呢
2016-10-09 回復 有任何疑惑可以回復我~
#2

WinXXP3952812 回復 weibo_

同樣的問題
2016-11-29 回復 有任何疑惑可以回復我~

offsetLeft是屬性啊,直接獲取就可以了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

oDiv.offsetLeft = 190具體是如何得到的?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號