求哪位大神幫我看一下是哪里出問題,就是停不下來,檢查了很多遍了。
有沒有大神幫我看一下,不知道哪里出問題了,就是停不下來,檢查了很多遍了。糾結
window.onload=function(){
var oDiv=document.getElementById("div1");
oDiv.onmouseover=function(){
startMove();
}
}
var timer=null;
function startMove(){
var oDiv=document.getElementById("div1");
timer=setInterval(function()
{
? ?if(oDiv.offsetLeft==0)
? ? ?{
? ? ? ?clearInterval(timer);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ?else
? ? ? ? ? ? ?{?
? ? oDiv.style.left=oDiv.offsetLeft+10+"px";
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
},30)
}
2015-09-10
有可能是你的布局有問題。運動的距離不是10的倍數。*{margin:0;padiding:0;}初始化一下。left要是10的倍數。div沒有邊框和padding'margin值。
2015-09-03
oDiv.offsetLeft>0它就能停下來了
2015-08-30
先說明兩點?
我是學生,以下是個人看法,僅供參考,不過我都測驗過了
希望下次把完整的代碼發到問題中,這樣別人就不用再去寫樣式,也不用猜你的樣式是怎樣的
以下是我的回答
1. 設置了margin,沒設置left。
結果:會一直往前跑,因為oDiv不知道什么時候停下來,這時候的margin-left代替了left,為什
么會代替,我也不知道。
而且前進的speed為margin-left+10.(因為你設置的是10)
2.沒設置margin,設置了left。
結果:不會往前跑(left小于0才行,因為一開始就大于0,而且speed為10(正數),永遠都不會
停,因為left永遠都不會為0)
3.同時設置了margin和left。
結果:會一直往前跑
前進的speed為margin-left+10(如果speed為負的話,就往相反方向移動)
真正的left(我定義為real-left,好記點)為(margin-left+left)的值,
real-left 為負的時候,以left為準進行計算(判斷依據real-left為0的時候,才會停下來),
real-left 為正的時候,以real-left為準進行計算。
如果speed的值恰好能讓real-left為0,則能停下來。判斷也是real-left為0的時候,才停下來
希望能給我回復,你的問題。這樣大家才能共同進步
2015-08-25
但是我的初始值是10的整數倍,為什么會不一定等于0呢
2015-08-17
默認值+10一直加 不一定等于0 ?可能直接就大于0 或者小于0 的