五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Animate.css:如水般自然溫柔的 CSS 動效庫

2023-06-06 12:45 作者:寫代碼的寶哥  | 我要投稿

本文發(fā)布于 2023.05.30。


Animate.css 是一個純 CSS 動畫庫 ,需要配合 JS 才能自由地讓某些元素隨時動起來。

官網(wǎng):https://animate.style/


使用(直接 HTML 中添加)


在 html 文件中引入動畫庫樣式文件。



接著給我們希望運動地元素加上類名 animate__animated,并跟上任何動畫名稱(不要忘記 animate__ 前綴?。I鲜鑫覀兘o <h1> 增加了左右搖擺地效果。

注意,因為動畫會造成元素偶爾會離開視口范圍,導(dǎo)致出現(xiàn)滾動條,所以我們給父元素加了 overflow: hidden 避免這個問題,這也是通常做法。


JS 控制


為了實現(xiàn)更靈活的操作,我們就要借助 JS 了。


修改 HTML 結(jié)構(gòu):



我們最開始可能會這么寫:



這種是沒效果的!這是因為 .remove().add() 是同步代碼,代碼執(zhí)行完畢后開始 UI 渲染,對瀏覽器來說,元素 e 的類名前后并無變化,因此動畫不會生效。


不急,下面我們提供了三種讓動畫生效的方式。


三種讓動畫生效的方式


方式一:強制刷新



.remove() 后,訪問 e.offsetWidth 會觸發(fā)瀏覽器強制刷新;再設(shè)置 .add() 會在下一次繪制中生效,所以動畫會生效。


方式二:下一幀中刷新



.remove() 后,我們將 .add() 操作通過 requestAnimationFrame 回調(diào)方式放入下一幀中渲染。

方式三:通過 animationend 事件



這里不再需要每次動畫時,先移除動畫類名,而是在當(dāng)次動畫結(jié)束時移除。與前兩種實現(xiàn)方式區(qū)別在于,第三種方式會讓動畫完整結(jié)束,而前兩種會中斷當(dāng)次動畫、并重新開始新的動畫。

綜合來看,方式三更好一些。


封裝可復(fù)用方法


我們這里封裝一個 animateCSS()——方便復(fù)用——用來給某個特定元素指定動畫效果:



animateCSS() 接收選擇器字符串(CSS Selector)作為參數(shù),運動元素。這里有兩點需要注意:

  • 我們?yōu)樵靥砑邮录r .addEventListener 使用的是單次生效事件,這樣就不必做 .removeEventListener ?處理了。

  • animationend 事件中,我們使用了 event.stopPropagation() 阻止了事件向上冒泡。

animateCSS() 使用方式如下:



注意事項

  • 行內(nèi)元素不支持動畫。在對內(nèi)聯(lián)級元素進行動畫處理時,可以將元素設(shè)置為 display: inline-block

  • 大多數(shù) Animate.css 動畫將在屏幕上移動元素,并可能會在你的網(wǎng)頁產(chǎn)生滾動條。使用 overflow: hidden 屬性可以避免網(wǎng)頁被撐大出現(xiàn)滾動條的問題。


Animate.css:如水般自然溫柔的 CSS 動效庫的評論 (共 條)

分享到微博請遵守國家法律
左权县| 阳泉市| 凌源市| 玉屏| 双鸭山市| 渑池县| 潢川县| 昭平县| 遂宁市| 若尔盖县| 芒康县| 宁强县| 岐山县| 康马县| 宝兴县| 永福县| 大冶市| 来安县| 黑龙江省| 崇礼县| 皮山县| 甘谷县| 南溪县| 安远县| 台安县| 环江| 玉林市| 濉溪县| 乾安县| 聂荣县| 宽城| 韶关市| 五台县| 睢宁县| 波密县| 莱阳市| 桓仁| 岳阳县| 图木舒克市| 苏尼特右旗| 民丰县|