-
在做緩沖運動的時候記得把數(shù)值去整;因為瀏覽器會自動忽略小數(shù)點后面的取值查看全部
-
css透明度 filter: alpha(opacity:30); /*IE瀏覽器專用,opacity屬性值為0~100*/ opacity:0.3; /*所有主流瀏覽器都支持opacity屬性。.查看全部
-
先暫停,去看游戲的實質(zhì)查看全部
-
運動框架實現(xiàn)思路查看全部
-
鏈?zhǔn)竭\動: 在封裝函數(shù)后面加上一個函數(shù)在執(zhí)行玩前面函數(shù)的時候執(zhí)行下一個函數(shù):查看全部
-
多物體運動:每個物體都需要單獨的計時器:查看全部
-
json:輕量級數(shù)據(jù)交換格式 使用json來完成輕量級數(shù)據(jù)交換,即多個運動同時發(fā)生。json的一般形式為obj={name:value},不同的name值中間用逗號隔開,里面是一對一對的值,固定循環(huán)形式為for(in) 且for-in 循環(huán)要在定時器里,例如 for (var i in obj){ alert(i);/彈出對象是name的值 alert(obj[i]);/彈出對象是value的值 } 1、flag=true,應(yīng)該立在定時器內(nèi),json的for遍歷前; 2、if(flag){clearInterval(obj.timer);if(fn){fn()}}應(yīng)該放在定時器內(nèi),json的for遍歷后; 因為當(dāng)三個iCur==json[attr],flag==false,之后一次執(zhí)行定時器時,會將flag變?yōu)閠rue,則變成true狀態(tài),for遍歷中的結(jié)果并不會被執(zhí)行,等于空運行一次for遍歷后,true被帶到if(flag){if(fn){fn()}},中執(zhí)行關(guān)閉定時器和fn(),如果吧if(flag){...}放在for遍歷中,最后fn()會被執(zhí)行三次,for遍歷的特性查看全部
-
在做緩沖運動的時候記得把數(shù)值去整;因為瀏覽器會自動忽略小數(shù)點后面的取值 Math。floor();向下取整 Math。ceil();向上取整查看全部
-
使用js來實現(xiàn)透明度而不采用css設(shè)置透明度:因為css是一步完成的js可以實現(xiàn)漸隱特效 opacity是不透明度,為0時表示不透明相當(dāng)于css隱藏 filter:alpha(opacity:30)ie專屬屬性值為0~100 opacity:0.3;所有瀏覽器都支持的opacity屬性: 沒有值直接的屬性可以改變透明度需要定義一個alpha查看全部
-
js動畫實現(xiàn)效果; 1速度改變的是物體屬性的值2:緩沖運動3:多物體運動4:任意值變化5:鏈?zhǔn)竭\動:6:同時運動查看全部
-
加邊框每次縮小像素 要大于 邊框像素, 否者請用 ParseInt包裹查看全部
-
加邊框每次縮小像素 要大于 邊框像素, 否者請用 ParseInt包裹查看全部
-
這章節(jié)要多看幾遍查看全部
-
offset 屬性有bug , 加了邊框或其他樣式后會導(dǎo)致出問題,要用 getStyle函數(shù)查看全部
-
由于數(shù)值設(shè)置的原因,div移動到一定px后,進行相減再除20的運算后會出現(xiàn)小數(shù),比如0.75,比如這時div移動到了290,程序里寫到div的left=oDiv.offsetLeft+speed+'px',那么div的left就是290.75px,此時speed速度為0.75。而瀏覽器是不允許出現(xiàn)小數(shù)的,會把0.75去掉,那么就速度為0 不動了。那么div的left就變成了290,下次執(zhí)行時div的left是290,算出來速度還是0.75,瀏覽器又省略了小數(shù),結(jié)果就是div停在了290px,到不了目標(biāo)點300。 所以 向右移動 速度為正 就將變成小數(shù)的速度 向上取整 為1 向左移動 速度為負(fù) 就將變成負(fù)小數(shù)的速度向下取整 取整原因:因為有除法,當(dāng)offsetLeft值變的越來越小時,最后相除會使speed變成小數(shù),從而offsetLeft與speed相加會有小數(shù),又因顯示器的最小像素單位是1px,所以瀏覽器默認(rèn)向下取整(變小,即floor),將小數(shù)省略,小數(shù)省略后,最終的值會變小,從而導(dǎo)致程序無法進入if判斷,進入死循環(huán)。 這一點可以用console.log(speed)可以驗證,speed的log會一直輸出,因為程序死循環(huán)了 Math.floor()向取整; Math.ceil()向上取整; Math.round()四舍五入; var speed = speed>0?Math.ceil(speed):Math.floor(speed); 如果(目標(biāo)值-當(dāng)前值)/10 不能整除的話。運動到最后,是1~9之間的數(shù)字來除以10,結(jié)果是個小于1的小數(shù),如果用Math.floor(speed)向下取整,那就是0,speed=0,意味著不再發(fā)生變化。也就是說,當(dāng)速度大于0的時候,如果用Math.floor(speed),最后不到10個像素的時候,就不會動了。所以要用Math.ceil向上取整。同理,當(dāng)速度<0時,要用Math.ceil()取整。查看全部
舉報
0/150
提交
取消