2017-12-27js動畫

知識點:

1. 寫定時器setInterval函數(shù)第一條要清除定時器,否則會多次觸發(fā)定時器

2. 寫動畫前要清楚瀏覽器默認樣式*{margin:0;padding:0}? 否則px會跳躍

3. 注意避免硬編碼即在函數(shù)的判斷之中直接使用具體的值如10,20等,應該把這些變化的值作為參數(shù)傳入函數(shù)內(nèi)部,即美觀也方便后來的修改。

4. 代碼相同的部分需要封裝,可以利用兩個不同的參數(shù)進行區(qū)分

5. offset() 方法返回或設置匹配元素相對于文檔的偏移(位置)。該方法返回的對象包含兩個整型屬性:top 和 left,以像素計。此方法只對可見元素有效。

scrollWidth:對象的實際內(nèi)容的寬度,不包邊線寬度,會隨對象中內(nèi)容超過可視區(qū)后而變大。?

clientWidth:對象內(nèi)容的可視區(qū)的寬度,不包滾動條等邊線,會隨對象顯示大小的變化而改變。

clientWidth = width + padding

offsetWidth:對象整體的實際寬度,包滾動條等邊線,會隨對象顯示大小的變化而改變。

offsetWidth = width + padding + border=clientWidth+border

offsetleft:此屬性可以返回當前元素距離某個父輩元素左邊緣的距離,當然這個父輩元素也是有講究的。

(1).如果父輩元素中有定位的元素,那么就返回距離當前元素最近的定位元素邊緣的距離。

(2).如果父輩元素中沒有定位元素,那么就返回相對于body左邊緣距離。

語法結(jié)構(gòu):

obj.offsetleft

特別說明:此屬性是只讀的,不能夠賦值。

offsetLeft和style.left的區(qū)別:

1.offsetWidth屬性可以返回對象的padding+border+width屬性值之和,style.width返回值就是定義的width屬性值。

2.offsetWidth屬性僅是可讀屬性,而style.width是可讀寫的。

3.offsetWidth屬性返回值是整數(shù),而style.width的返回值是字符串(包括“px”)。

4.style.width僅能返回以style方式定義的內(nèi)部樣式表的width屬性值。

6. 計時器setInterval()

在執(zhí)行時,從載入頁面后每隔指定的時間執(zhí)行代碼。

語法:

setInterval(代碼,交互時間);

參數(shù)說明:

1. 代碼:要調(diào)用的函數(shù)或要執(zhí)行的代碼串。

2. 交互時間:周期性執(zhí)行或調(diào)用表達式之間的時間間隔,以毫秒計(1s=1000ms)。

返回值:

一個可以傳遞給 clearInterval() 從而取消對"代碼"的周期性執(zhí)行的值。

self.setInterval的意思是只在當前頁面執(zhí)行的意思

clearInterval() 方法可取消由 setInterval() 設置的交互時間。

語法:

clearInterval(id_of_setInterval)

參數(shù)說明:

id_of_setInterval:由 setInterval() 返回的 ID 值。

setTimeout()計時器,在載入后延遲指定時間后,去執(zhí)行一次表達式,僅執(zhí)行一次。

語法:

setTimeout(代碼,延遲時間);

提示:setTimeout() 只執(zhí)行 code 一次。如果要多次調(diào)用,請使用 setInterval() 或者讓 code 自身再次調(diào)用 setTimeout()。

7. 若要移動塊級元素,使之一部分或完全溢出父級元素,可使用相對定位

8. onmouseover寫法(必須函數(shù)):object.onmouseover=function(){SomeJavaScriptCode};

9. 將獲取元素放在window.onload外,會導致找不到對象

第一,把js文件放在底部加載;第二,使用window.onload=function(){}包裹js內(nèi)容。

10. 不透明度

img{

opacity:0.4;

filter:alpha(opacity=40); /* 針對 IE8 以及更早的版本 */}

IE9, Firefox, Chrome, Opera 和 Safari 使用屬性?opacity?來設定不透明度。opacity 屬性能夠設置的值從 0.0 到 1.0。值越小,越透明。

IE8 以及更早的版本使用濾鏡?filter:alpha(opacity=x)。x 能夠取的值從 0 到 100。值越小,越透明。

11. javascript的計算能力不強,用小數(shù)的方式來做數(shù)學運算容易得出錯誤結(jié)果,建議需要運算的代碼盡量避開小數(shù)。

12. Math.ceil()向上取整

13. 多物體動畫不能用公用計時器、公用元素,需定義在每個obj中,obj.timer ,obj.alpha,aLi[i].timer=null

,clearInterval(aLi[i].timer

14. 獲取樣式

js只能獲取到行內(nèi)樣式,而無法獲取到內(nèi)部樣式或外部樣式。

obj.style.xxxx獲取的是行內(nèi)樣式。

獲取內(nèi)部或外部樣式的方法:currentStyle 針對IE瀏覽器;getComputedStyle 針對firefox瀏覽器。

a. 封裝好的函數(shù)

b. 用法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,140評論 1 92
  • 一、JS前言 (1)認識JS 也許你已經(jīng)了解HTML標記(也稱為結(jié)構(gòu)),知道了CSS樣式(也稱為表示),會使用HT...
    凜0_0閱讀 2,922評論 0 8
  • 從埃弗頓轉(zhuǎn)會到曼聯(lián)不需要“考慮兩次”,因為這代表著“完美的機會”?!R卡庫 這名24歲的前鋒使曼聯(lián)簽下7500萬...
    烏卓閱讀 258評論 4 4
  • 有網(wǎng)友曬出一張baby和她母親本人年輕時的照片來做對比,并贊嘆道,簡直就是復制加黏貼呀,照片中baby將眼鏡戴在頭...
    暖心湯閱讀 363評論 0 0
  • 這是一個心機婊,女神,和男神的故事 1. 其實心機婊原來一點都不心機的。 至少在她剛進入這所學校的時候,還是一朵純...
    熊信婷閱讀 830評論 0 0

友情鏈接更多精彩內(nèi)容