實現(xiàn)一個動畫,有三種實現(xiàn)方式,我們將首先分別介紹三種方式,之后會根據(jù)瀏覽器渲染原理分析哪種方式最好
1. 通過設(shè)定 position 及 left、top 等
2. 通過 transform + transition
3. 用 animation
其實還是用的 transform 實現(xiàn)的,只不過可以在別處獨立聲明,多次使用
關(guān)于transition的總結(jié)
有一些屬性不能用transition
- 比如
display: block變成display: none
關(guān)于animation的總結(jié)
animation組成部分
- 關(guān)鍵幀
keyframes - animation 屬性
因為我們可以在任意一個點指定關(guān)鍵幀,所以animation可以用來做更復(fù)雜的動畫
瀏覽器渲染原理
瀏覽器渲染的過程:
- 根據(jù)HTML標記并構(gòu)建DOM樹
- 根據(jù)CSS構(gòu)建CSS樹(CSSOM)
- 將兩棵樹合并成一棵渲染樹(render tree)
- layout布局(文檔流,盒模型,計算大小或位置等)
- paint繪制(邊框顏色,背景顏色,陰影等繪制)
- compose合成(根據(jù)層疊關(guān)系展示畫面)

Snipaste_2020-10-18_14-26-01.png