2020-07-23 18課 CSS動(dòng)畫(huà)+瀏覽器渲染原理

瀏覽器渲染原理

渲染機(jī)制

  1. 瀏覽器加載HTML代碼后解析HTML代碼來(lái)構(gòu)建HTML樹(shù)(DOM)
  2. 加載CSS代碼后解析并構(gòu)建CSS樹(shù)(CSSOM)
  3. 將兩棵樹(shù)合并成一棵渲染樹(shù)Render tree
  4. 根據(jù)文檔流、盒模型、計(jì)算大小和位置等布局 Layout
  5. 根據(jù)邊框、文字顏色以及陰影等繪制 Paint
  6. 再根據(jù)層疊關(guān)系等合成并展示畫(huà)面 Compose
1589719767199-e3108fd7-8823-42f7-9331-5479ab5d3fe0.png

更新樣式

  1. 一般使用Js更新樣式,比如:
    ? div.style.background = 'red'
    ? div.style.display = 'none'
    ? div.classList.add('red')
    ? div.remove()直接刪除節(jié)點(diǎn)

動(dòng)畫(huà)

定義

  1. 由許多靜止的畫(huà)面(幀)以一定的播放速度(如每秒30張)連續(xù)播放
  2. 肉眼因視覺(jué)殘像而產(chǎn)生錯(cuò)覺(jué)誤以為是活動(dòng)的畫(huà)面

概念

? 幀:每個(gè)靜止的畫(huà)面
? 播放速度:影視每秒24幀,游戲每秒最少30幀
動(dòng)畫(huà)優(yōu)化
CSS優(yōu)化
使用will-change或translate
JS優(yōu)化
使用requestAnimationFrame代替setTimeout和setInterval
transform轉(zhuǎn)換
常用功能
? 位移translate
? 縮放scale
? 旋轉(zhuǎn)rotate
? 傾斜skew
translate取值

  1. translateX,沿著 X 軸移動(dòng)元素
  2. translateY,沿著 Y 軸移動(dòng)元素
  3. translate(x,y),沿著 X 和 Y 軸移動(dòng)元素
  4. translate3d,3D 轉(zhuǎn)化
    經(jīng)驗(yàn)
    ? 一般要配合過(guò)渡 transition
    ? inline元素不支持 transform,需要變成block
    ? translate(-50%, -50%) 可以做絕對(duì)定位元素居中
    scale取值
  5. scaleX,改變?cè)氐膶挾?/li>
  6. scaleY,改變?cè)氐母叨?/li>
  7. scale(x,y) ,改變?cè)氐膶挾群透叨?/li>
  8. scale3d(x,y,z) ,3D 縮放轉(zhuǎn)換
    經(jīng)驗(yàn)
    ? 少用,容易出現(xiàn)模糊
    rotate
    在參數(shù)中規(guī)定角度,一般用于360度旋轉(zhuǎn)制作 loading
    skew
  9. skewX,沿著 X 軸
  10. skewY,沿著 Y 軸
  11. skew,沿著 X 和 Y 軸

transition過(guò)渡

語(yǔ)法

  1. transition: 屬性名 時(shí)長(zhǎng) 過(guò)渡方式 延遲
  2. 可以用逗號(hào)分隔兩個(gè)不同屬性
  3. 可用all代表所有屬性
  4. 過(guò)渡方式有l(wèi)inear、ease、ease-in、ease-in-out、ease-out、step-start、step-end
    過(guò)渡起始
    過(guò)渡必須要有起始,一般只有一次動(dòng)畫(huà)或者兩次,比如hover和非hover狀態(tài)的過(guò)渡
    不是所有屬性都能過(guò)渡
    display: none -> block沒(méi)法過(guò)渡,一般改成visibility: hidden -> visible

animation

縮寫(xiě)語(yǔ)法
animation: 時(shí)長(zhǎng) | 過(guò)渡方式 | 延遲 | 次數(shù) | 方向 | 填充模式 | 是否暫停 | 動(dòng)畫(huà)名
時(shí)長(zhǎng)
1s 或 1000ms
過(guò)渡方式
跟 transition 一樣,比如 linear
次數(shù)
3 或 infinite
方向
reverse | alternate | alternate-reverse
填充模式
none | forwards | backwards | both
是否暫停
pause | running

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

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

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