已采納回答 / Freestyle文
同學 ?你的getStyle沒有封裝啊function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; } else{ return getComputedStyle(obj,false)[attr]; }}
2016-08-29
已采納回答 / yanbxiaio
定時器不斷刷新,每30ms刷新一次,就調用一次函數,運動的過程是寬高(等等想要的效果)變化的過程,調用函數改變寬高,達到運動效果,30ms刷新一次是因為,人眼能識出卡頓的最低幀數是30左右,因此30ms約等于30fps。
2016-08-29
已采納回答 / DollarCat
?var li=Document.getElementsByTagName("ali"); ? ? ? ?ali.onmousemover()=function(){ ? ? ? ? ? ?startMove(this,400); ? ? ? ?} ? ? ? ?ali.onmouseout=function(){ ? ? ? ? ? ?startMove(this,200); ? ? ? ?} ? ?}你這里用變量li獲取了ali了要遍歷一次啊,而且是用li【i】來調用事件onmouseover和onm...
2016-08-28
已采納回答 / 桐谷還灬和人
因為沒有具體代碼沒法具體判斷:可能性有一下幾個。------1.stopMove的 if ?判斷范圍沒寫對。致使滑塊"滑過了"。2.stopMove定時器沒有清除。導致鼠標觸發”滑回效果“,然而沒有清除定時器clearInterval,導致計時器一直計時下去。在我們眼里看來就是”滑出去了“。
2016-08-24
已采納回答 / 不再使用
speed=speed>0?Math.ceil(speed):Math.floor(speed);速度大于0就往上取整(用于顯示出來)速度小于0就往下取整(用于縮回隱藏)等到最后速度(絕對值)小于1px/30ms的時候不至于被瀏覽器忽視(小數不承認)你這個情況是不是沒有寫這一句判定
2016-08-22
已采納回答 / 小菜鳥飛
我覺得,因為他根本到不了0,,你的left是-468,一次加10,等到了-8的時候在加10,就是2,也不是0,就繼續循環了,,你把left改成-460試試 ,應該就可以了
2016-08-21
已采納回答 / 穿皮夾克的大熊
offsetLeft 為數值 ?不該+pxfunction leave(){ ? ?? ? ? ? clearInterval(timer);? ? ? ? timer = setInterval(function(){ ? ? ? ?? ? ? ? var c = document.getElementById('yu');? ? ? ? if(c.offsetLeft <= -480){? ? ? ? ? ? clearInterval(timer);? ? ? ? }? ? ? ? else{...
2016-08-20
已采納回答 / YuuyaRin
因為之前定時器的循環里,因為最后結果都是差零點幾,結果最后導致多執行一次來滿足target,然后最后運動的距離就超出了,負的向下取整,正的向上取就是為了彌補上除法除出來差的那零點幾,然后就不會多執行那一次循環,就避免了超出和未運動到的情況
2016-08-20
已采納回答 / 不如懷念o
只要不是立即執行的代碼,放在哪無所謂,而且你用的是onload事件,本身就是頁面加載完才執行。如果在別的瀏覽器中可以實現,而在火狐中不行時,可以試試加上前綴-moz-opacity。ps:火狐以前很強大,現在讓人覺得很垃圾,還是谷歌的chrome標準支持的好。
2016-08-18
已采納回答 / 不如懷念o
aLi[i].timer=null;首先說一下,timer是節點自定義屬性,不需要初始化為null;你應該去看看width、clientWidth、offsetWidth的定義。
2016-08-18
已采納回答 / 不如懷念o
timer不是變量,它只是節點的自定義屬性,直接就可以添加;而且聲明變量的方式是錯誤的,所以下面的代碼不會執行,建議多看控制臺信息。那個女老師講的課還是有很多問題的。
2016-08-18