-
多物體運動不能共用,odiv[i].alpha=30定義查看全部
-
改后效果查看全部
-
li[i].timer=null自定義一個定時器查看全部
-
var timer=null; function startmove(obj,targe){clearinterval(timer); timer=setinterval(function(){var speed=target-obj.offsetWidth)/8 speed=speed>0?math.ceil(speed):math.floor(speed); if(obj.offsetwidth==target){clearinterval(timer);}else{obj.style.left=obj.offsetwidth+speed+"px;}},30)}查看全部
-
多物體運動 window.onload=function(){var li=document.getELEMTNbytagName('li; for(var i=0; i<li.length; i++){li[i}.onmouseover=function(){startmove(this,400);} li[i].onmuseont=function(){startMpve(this,200)}}查看全部
-
不勻速運動查看全部
-
不勻速運動查看全部
-
兩個startMove函數(shù)異步進行,第一個函數(shù)相當于通知它去改變寬度,通知完之后,不管完成沒完成,都繼續(xù)執(zhí)行第二個函數(shù)了,而第二個函數(shù)里面也有clearInterval();就把前一個未執(zhí)行完的動畫清除了,相當于覆蓋了。(改變寬度可能要300ms,而通知可能就要1ms,第二個函數(shù)通知的時候也就1ms,很快,就相當于覆蓋了) 如果同時調(diào)用多個startMove函數(shù),后面的startMove會清除掉前面的startMove的定時器(因為startMove函數(shù)中第一句就是clearInterval)。因此實際只有最后一個startMove被執(zhí)行了。查看全部
-
透明度css代碼查看全部
-
parseInt()方法還有基模式,可以把二進制、八進制、十六進制或其他任何進制的字符串轉(zhuǎn)換成整數(shù)。查看全部
-
offsetWidth=width+border*2 當前寬等于div寬加上border兩邊的寬查看全部
-
運動框架實現(xiàn)思路查看全部
-
1.速度(改變值left,right,width,height.opacity透明度) 2.緩沖運動 3.多物體運動 4.任意值變化 5.鏈式運動 6.同時運動查看全部
-
緩沖: var speed=( - )/20 speed=speed>0?Math.ceil(speed):Math.floor(speed); 速度為正向上取整,速度為負向下取整 原因: 由于數(shù)值設(shè)置的原因,div移動到一定px后,進行相減再除20的運算后會出現(xiàn)小數(shù),比如0.75,比如這時div移動到了290,程序里寫到div的left=oDiv.offsetLeft+speed+'px',那么div的left就是290.75px,而瀏覽器是不允許出現(xiàn)小數(shù)的,會把0.75去掉,那么div的left就成了290,下次執(zhí)行時div的left是290,算出來速度還是0.75,瀏覽器又省略了小數(shù),結(jié)果就是div停在了290px,到不了目標點300。查看全部
-
js速度動畫講的是定時器的作用,相同函數(shù)可以合并成一個函數(shù)的方法,優(yōu)化、改進函數(shù)的方法,阻止定時器反復遞歸的方法。js透明度動畫是繼速度動畫后增加了一個瀏覽器兼容的方法。緩沖動畫的重點在于目標值-當前值后除以一個系數(shù),運動變勻速為緩沖,緩沖目的達到。但是任何除法算式之后可能會產(chǎn)生小數(shù),所以還需要對速度進行判斷,為正Math.ceil(x),為負Math.floor(x)三元判斷式。speed > 0 ? Math.ceil(speed ) : Math.floor(speed )查看全部
舉報
0/150
提交
取消