最新回答 / 慕絲2053625
你好,我也遇到了這個問題。正如老師所講的那樣,一定是有屬性在到達自己的位置的時候,立刻觸發(fā)了清除定時器,導致其他的屬性雖然還沒有到達target,就被終止了運行。當你再次用鼠標指向的時候,定時器只會被觸發(fā)一次,for循環(huán)一遍,就遇到opacity屬性已經變成1,因此目標寬度只被遍歷1次,增長1,所以需要移入移出4次,這個情況將會在你把目標寬度修改成201時相當明顯。
2018-03-13
我發(fā)現用onmouseover會出現bug,就是onmouseover事件會一直觸發(fā),用onmouseenter就不會了
2018-03-12
沒必要搞那么麻煩,可以直接定義一個itrue判斷已達到目標值的屬性個數,itrue定義在定時器外itrue=0;
if(icur!=json[attr]{繼續(xù)執(zhí)行運動函數}
else itrue++;
if(itrue==json.length) {關閉定時器;fn();}
if(icur!=json[attr]{繼續(xù)執(zhí)行運動函數}
else itrue++;
if(itrue==json.length) {關閉定時器;fn();}
2018-02-28
已采納回答 / Madlen
//以下是老師封裝的函數,其余的css代碼自己寫就好了function startMove(obj,json,fn) { /* obj為要改變的元素對象 json為屬性/值對,即要改變的屬性和值。用于同步運動 fn為回調函數,用于設置鏈式運動 ...
2018-01-31
給大家分享一個一句可以代替判斷速度正負代碼的
源代碼為:
if(oDiv.offsetLeft<target){
speed=10; //offsetLeft
}
else if(oDiv.offsetLeft>target){
speed=-10;
};
可以精簡為
oDiv.offsetLeft>target?speed=-10:speed=10;
源代碼為:
if(oDiv.offsetLeft<target){
speed=10; //offsetLeft
}
else if(oDiv.offsetLeft>target){
speed=-10;
};
可以精簡為
oDiv.offsetLeft>target?speed=-10:speed=10;
2018-01-29