-
樣式屬性獲得:parseInt(obj.style.width)查看全部
-
透明度屬性查看全部
-
...查看全部
-
...查看全部
-
clearInterval(timer)清理定時(shí)器查看全部
-
offsetLeft當(dāng)前左邊距值查看全部
-
IE:currentStyle; firefox:getComputedStyle;查看全部
-
避免重復(fù)多次啟動(dòng)計(jì)時(shí)器,可以在啟動(dòng)計(jì)時(shí)器前先清空計(jì)時(shí)器,這樣就不會有重復(fù)的計(jì)時(shí)器使用了。 盡量減少參數(shù),能寫進(jìn)函數(shù)的就寫進(jìn)函數(shù)查看全部
-
filter是針對IE做兼容的,opacity是對主流高版本瀏覽器的,如火狐,谷歌查看全部
-
<!-- 使用js實(shí)現(xiàn)透明度運(yùn)動(dòng)而不采用直接設(shè)置css的style.opacity屬性來改變透明度,這是因?yàn)閏ss的透明度的設(shè)置是一步到位,瞬時(shí)完成的,而使用js可以實(shí)現(xiàn)漸隱特效 --> opacity是不透明度,opacity為0時(shí)表示不透明度是0也就是完全透明(效果等同于css的隱藏) filter: alpha(opacity:30); /*IE瀏覽器專用,opacity屬性值為0~100*/ opacity:0.3; /*所有主流瀏覽器都支持opacity屬性。. 注意:IE8和早期版本支持另一種過濾器屬性。像:filter:Alpha(opacity=50),而IE8版本之前的opacity屬性值是0~1*/ 【沒有直接的屬性可以改變透明度,需要定義一個(gè)alpha】查看全部
-
JS中 obj.style.attr 只能獲取行內(nèi)樣式 要獲取非行內(nèi)樣式要通過obj.currentStyle[attr]或者getComputedStyle(obj,false)[attr]方法獲取 可以封裝為function getStyle(obj,attr){ if(obj.currentStyle){return obj.currentStyle[attr];}else{returngetComputedStyle(obj,false)[attr]}} obj.offsetWidth 返回值是數(shù)值所以不用parseInt();而obj.style.width獲取的是像素值查看全部
-
1.速度(left\right\width\height\opacity)查看全部
-
緩沖運(yùn)動(dòng)中:向上取整Math.ceil(),向下取整Math.floor() 由于數(shù)值設(shè)置的原因,div移動(dòng)到一定px后,進(jìn)行相減再除20的運(yùn)算后會出現(xiàn)小數(shù),比如0.75,比如這時(shí)div移動(dòng)到了290,程序里寫到div的left=oDiv.offsetLeft+speed+'px',那么div的left就是290.75px,此時(shí)speed速度為0.75。而瀏覽器是不允許出現(xiàn)小數(shù)的,會把0.75去掉,那么就速度為0 不動(dòng)了。那么div的left就變成了290,下次執(zhí)行時(shí)div的left是290,算出來速度還是0.75,瀏覽器又省略了小數(shù),結(jié)果就是div停在了290px,到不了目標(biāo)點(diǎn)300。 所以 向右移動(dòng) 速度為正 就將變成小數(shù)的速度 向上取整 為1 向左移動(dòng) 速度為負(fù) 就將變成負(fù)小數(shù)的速度向下取整 取整原因:因?yàn)橛谐ǎ?dāng)offsetLeft值變的越來越小時(shí),最后相除會使speed變成小數(shù),從而offsetLeft與speed相加會有小數(shù),又因顯示器的最小像素單位是1px,所以瀏覽器默認(rèn)向下取整(變小,即floor),將小數(shù)省略,小數(shù)省略后,最終的值會變小,從而導(dǎo)致程序無法進(jìn)入if判斷,進(jìn)入死循環(huán)。 這一點(diǎn)可以用console.log(speed)可以驗(yàn)證,speed的log會一直輸出,因?yàn)槌绦蛩姥h(huán)了 Math.floor()向取整; Math.ceil()向上取整; Math.round()四舍五入; var speed = speed>0?Math.ceil(speed):Math.floor(speed); 如果(目標(biāo)值-當(dāng)前值)/10 不能整除的話。運(yùn)動(dòng)到最后,是1~9之間的數(shù)字來除以10,結(jié)果是個(gè)小于1的小數(shù),如果用Math.floor(speed)向下取整,那就是0,speed=0,意味著不再發(fā)生變化。也就是說,當(dāng)速度大于0的時(shí)候,如果用Math.floor(speed),最后不到10個(gè)像素的時(shí)候,就不會動(dòng)了。所以要用Math.ceil向上取整。同理,當(dāng)速度<0時(shí),要用Math.ceil()取整。查看全部
-
只要是多物體,定時(shí)器和透明度都不能共用。查看全部
-
緩沖運(yùn)動(dòng)中:向上取整Math.ceil(),向下取整Math.floor()查看全部
舉報(bào)
0/150
提交
取消