已采納回答 / 呆4
經(jīng)過(guò)我的測(cè)試,可以這樣理解,在執(zhí)行第一個(gè)startmove中定時(shí)器里面的函數(shù)的時(shí)候是在設(shè)定的30ms后才會(huì)執(zhí)行第一次定時(shí)器里面的函數(shù),但之后的程序仍然會(huì)繼續(xù)執(zhí)行,所以這時(shí)就會(huì)繼續(xù)執(zhí)行下一個(gè)startmove函數(shù),而下一個(gè)startmove的第一步就是clearinterval,所以你會(huì)發(fā)現(xiàn),第一個(gè)startmove的定時(shí)器中的函數(shù)其實(shí)根本就沒(méi)有執(zhí)行,寬度根本一次都沒(méi)變,第一個(gè)startmove中的定時(shí)器在還沒(méi)有等到30ms開(kāi)始執(zhí)行的時(shí)候就已經(jīng)被clearinterval了,所以你會(huì)感覺(jué)是第一個(gè)沒(méi)執(zhí)行完就開(kāi)...
2016-03-01
已采納回答 / 慕容6759333
<...code...>第四行offsetLeft沒(méi)打?qū)Γ?/div>
2016-02-21
已采納回答 / kaiyanghll
?function getStyle(obj,attr){ ?? ?if(obj.currentStyle){ return obj.currentStyle[attr]; } else{ ?? ? ?return getComputedStyle(obj,false)[attr]; ??} ?} ?function startMove(obj,iTarget,attr,fn){ ?? ? ? clearInterval(obj.timer); ?...
2016-02-21
已采納回答 / wanoneQ
第八行 oar=getStyle(obj,attr)*100;中g(shù)etStyle(obj,attr)需要用parseFloat()函數(shù)轉(zhuǎn)換為數(shù)字,再四舍五入提高準(zhǔn)確度。oar=Math.round( parseFloat( getStyle(obj,attr) )*100);另外你的速度有問(wèn)題,建議提高精確度采用緩沖動(dòng)畫(huà),防止邊緣抖動(dòng)。
2016-02-19
已采納回答 / Betsey
第44行的attr沒(méi)有定義,應(yīng)該把a(bǔ)ttr換成'width',因?yàn)閍ttr是在getStyle()里面的局部變量,離開(kāi)了getStyle()就會(huì)銷毀
2016-02-19
已采納回答 / 慕容6759333
比如移動(dòng)到的目標(biāo)值是300px,通過(guò)300減去當(dāng)前的坐標(biāo)0,再除以20,結(jié)果是15,div以15的速度向右移動(dòng),這是第一次定時(shí)器執(zhí)行的結(jié)果。30毫秒后再執(zhí)行一次,目標(biāo)移動(dòng)到了15,通過(guò)300減去當(dāng)前坐標(biāo)15結(jié)果是285,285除以20結(jié)果的14.25,這樣一次次運(yùn)算下來(lái),速度越來(lái)越小,比如速度是15、14.25、12.73、7.2。。。。這樣的。由于數(shù)值設(shè)置的原因,div移動(dòng)到一定px后,進(jìn)行相減再除20的運(yùn)算后會(huì)出現(xiàn)小數(shù),比如0.75,比如這時(shí)div移動(dòng)到了290,程序里寫(xiě)到div的left=oDiv....
2016-02-17
已采納回答 / hiccup_dai
<script type="text/javascript"> $(function(){ $('#move a').mouseenter(function(){ $(this).find('i').animate({top:"-25px",opacity:"0"},300,function(){ $(this).css({top:"30px"}); $(this).animate({top:"20px",opacity:"1"},200) }) ...
2016-02-17
已采納回答 / haoyuanlin
可能是封裝的函數(shù)里面高度達(dá)到了然后使得動(dòng)畫(huà)停止了,看看startMove里面判斷動(dòng)畫(huà)停止的時(shí)候是否正確
2016-02-15
已采納回答 / 小感冒
復(fù)制了一下你的代碼測(cè)試了一下,應(yīng)該是停在-190.5這個(gè)數(shù)的。原因我理解的是這樣的:因?yàn)?190.5還差-9.5就達(dá)到了-200,但是如果在進(jìn)行運(yùn)算的話,就是比-200小了。好比10/3,結(jié)果是3余1,永遠(yuǎn)會(huì)留下一個(gè)1,這個(gè)1就相當(dāng)于上面所說(shuō)的-9.5.
2016-01-31
- 課程須知
- 1.您至少已經(jīng)具備JavaSript的知識(shí)。2.您已經(jīng)具備一些開(kāi)發(fā)經(jīng)驗(yàn)。
- 老師告訴你能學(xué)到什么?
- 1.使用定時(shí)器實(shí)現(xiàn)簡(jiǎn)單動(dòng)畫(huà)。2.如何一步步封裝庫(kù)。2.培養(yǎng)編程的思想。
微信掃碼,參與3人拼團(tuán)