摘要:下圖是我鼓搗到另外一個(gè)小,當(dāng)?shù)皆氐臅r(shí)候,產(chǎn)生火焰效果嗯,這些其實(shí)都是對濾鏡及混合模式的一些搭配運(yùn)用。主要幾個(gè)屬性默認(rèn)大家已經(jīng)掌握了大概,閱讀后可以自行去了解補(bǔ)充更多細(xì)節(jié)更多精彩技術(shù)文章匯總在我的,持續(xù)更新,歡迎點(diǎn)個(gè)訂閱收藏。
正文從下面開始。
今天的小技巧是使用純 CSS 生成火焰,逼真一點(diǎn)的火焰。
嗯,長什么樣子?在 CodePen 上輸入關(guān)鍵字?CSS Fire
,能找到這樣的:
或者這樣的:
我們希望,僅僅使用 CSS ,效果能再更進(jìn)一步嗎?能不能是這樣子:
嗯,我們需要使用?filter
?+?mix-blend-mode
?的組合來完成。
很多 CSS 華而不實(shí)的效果都是?
filter
?+?mix-blend-mode
,很有意思,但是業(yè)務(wù)中根本用不上,當(dāng)然多了解了解總沒壞處。
如上圖,整個(gè)蠟燭的骨架, 除去火焰的部分很簡單,掠過不講。主要來看看火焰這一塊如何生成,并且如何賦予動(dòng)畫效果。
模糊濾鏡疊加對比度濾鏡產(chǎn)生的融合效果。
多帶帶將兩個(gè)濾鏡拿出來,它們的作用分別是:
filter: blur()
: 給圖像設(shè)置高斯模糊效果。filter: contrast()
: 調(diào)整圖像的對比度。但是,當(dāng)他們“合體”的時(shí)候,產(chǎn)生了奇妙的融合現(xiàn)象。
先來看一個(gè)簡單的例子:
仔細(xì)看兩圓相交的過程,在邊與邊接觸的時(shí)候,會(huì)產(chǎn)生一種邊界融合的效果,通過對比度濾鏡把高斯模糊的模糊邊緣給干掉,利用高斯模糊實(shí)現(xiàn)融合效果。
利用上述?filter blur & filter contrast
,我們要先生成一個(gè)類似火焰形狀的三角形。(略去過程)
這里類似火焰形狀的三角形的具體實(shí)現(xiàn)過程,在這篇文章有詳細(xì)的講解:你所不知道的 CSS 濾鏡技巧與細(xì)節(jié)
父元素添加?filter: blur(5px) contrast(20)
,會(huì)變成這樣:
看著已經(jīng)有點(diǎn)樣子了,接下來是火焰動(dòng)畫,我們先去掉父元素的?filter: blur(5px) contrast(20)
?,然后繼續(xù) 。
這里也是利用了?filter
?的融合效果,我們在上述火焰中,利用 SASS?隨機(jī)均勻分布大量大小不一的圓形棕色 div ,隱匿在火焰三角內(nèi)部,大概是這樣:
接下來,我們再利用 SASS,給中間每個(gè)小圓賦予一個(gè)從下往上逐漸消失的動(dòng)畫,并且均勻賦予不同的?animation-delay
,看起來會(huì)是這樣:
OK,最重要的一步,我們再把父元素的?filter: blur(5px) contrast(20)
?打開,神奇的火焰效果就出來了:
當(dāng)然,上述效果已經(jīng)很不錯(cuò)了。經(jīng)過各種嘗試,調(diào)整參數(shù),最后我發(fā)現(xiàn)加上?mix-blend-mode: screen
?混合模式,效果更好,得到頭圖上面的最終效果如下:
完整源碼在我的 CodePen 上:CodePen Demo -- CSS Fire
當(dāng)然,掌握了這種方法后,這種生成火焰的技巧也可以遷移到其他效果去。下圖是我鼓搗到另外一個(gè)小 Demo,當(dāng) hover 到元素的時(shí)候,產(chǎn)生火焰效果:
CodePen Demo -- Hover Fire
嗯,這些其實(shí)都是對濾鏡及混合模式的一些搭配運(yùn)用。按照慣例,肯定有人會(huì)留言噴了,整這些花里胡哨的有什么用,性能又不好,業(yè)務(wù)中敢上不把你的腿給打骨折。
于我而言,虛心接受各種批評(píng)質(zhì)疑及各種不同的觀點(diǎn),當(dāng)然我是覺得搞技術(shù)一方面是實(shí)用,另一方面是興趣使然,自娛自樂。希望噴子繞道~
回到正題,了解了這種黏糊糊濕答答的技巧后,還可以折騰出其他很多有意思的效果,當(dāng)然可能需要更多的去嘗試,如下面使用一個(gè)標(biāo)簽實(shí)現(xiàn)的滴水效果:
CodePen Demo -- 單標(biāo)簽實(shí)現(xiàn)滴水效果
動(dòng)畫雖然美好,但是具體使用的過程中,仍然有一些需要注意的地方:
filter: blur(5px) contrast(150%) brightness(1.5)
?,但是濾鏡的先后順序不同產(chǎn)生的效果也是不一樣的;也就是說,使用?
filter: blur(5px) contrast(150%) brightness(1.5)
?和?filter: brightness(1.5) contrast(150%) blur(5px)?
處理同一張圖片,得到的效果是不一樣的,原因在于濾鏡的色值處理算法對圖片處理的先后順序。
blur()
?混合?contrast()
?濾鏡效果,設(shè)置不同的顏色會(huì)產(chǎn)生不同的效果,這個(gè)顏色疊加的具體算法暫時(shí)沒有找到很具體的規(guī)則細(xì)則,使用時(shí)比較好的方法是多嘗試不同顏色,觀察取最好的效果;本文只是簡單的介紹了整個(gè)思路過程,許多 CSS 代碼細(xì)節(jié),調(diào)試過程沒有展現(xiàn)出來。主要幾個(gè) CSS 屬性默認(rèn)大家已經(jīng)掌握了大概,閱讀后可以自行去了解補(bǔ)充更多細(xì)節(jié):
filter
mix-blend-mode
更多精彩 CSS 技術(shù)文章匯總在我的?Github -- iCSS?,持續(xù)更新,歡迎點(diǎn)個(gè) star 訂閱收藏。
好了,本文到此結(jié)束,希望對你有幫助 :)
如果還有什么疑問或者建議,可以多多交流,原創(chuàng)文章,文筆有限,才疏學(xué)淺,文中若有不正之處,萬望告知。
?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/1054.html
摘要:今天的小技巧是使用純生成火焰,逼真一點(diǎn)的火焰。如上圖,整個(gè)蠟燭的骨架,除去火焰的部分很簡單,掠過不講。利用上述,我們要先生成一個(gè)類似火焰形狀的三角形。 正文從下面開始。 今天的小技巧是使用純 CSS 生成火焰,逼真一點(diǎn)的火焰。 嗯,長什么樣子?在 CodePen 上輸入關(guān)鍵字 CSS Fire,能找到這樣的: showImg(https://segmentfault.com/img/...
摘要:說明上次我們了解了一些濾鏡的基礎(chǔ)知識(shí),簡單說濾鏡屬性這次我們就來用的濾鏡實(shí)現(xiàn)一個(gè)火焰的效果。解釋要實(shí)現(xiàn)上面的火焰效果,我們先來了解一些必要的東西。上次我們說過兩個(gè)濾鏡,和。 說明 上次我們了解了一些css濾鏡的基礎(chǔ)知識(shí), 簡單說 CSS濾鏡 filter屬性 這次我們就來用css的濾鏡實(shí)現(xiàn)一個(gè) 火焰的效果。 解釋 showImg(https://segmentfault.co...
摘要:說明上次我們了解了一些濾鏡的基礎(chǔ)知識(shí),簡單說濾鏡屬性這次我們就來用的濾鏡實(shí)現(xiàn)一個(gè)火焰的效果。解釋要實(shí)現(xiàn)上面的火焰效果,我們先來了解一些必要的東西。上次我們說過兩個(gè)濾鏡,和。 說明 上次我們了解了一些css濾鏡的基礎(chǔ)知識(shí), 簡單說 CSS濾鏡 filter屬性 這次我們就來用css的濾鏡實(shí)現(xiàn)一個(gè) 火焰的效果。 解釋 showImg(https://segmentfault.co...
摘要:說明上次我們了解了一些濾鏡的基礎(chǔ)知識(shí),簡單說濾鏡屬性這次我們就來用的濾鏡實(shí)現(xiàn)一個(gè)火焰的效果。解釋要實(shí)現(xiàn)上面的火焰效果,我們先來了解一些必要的東西。上次我們說過兩個(gè)濾鏡,和。 說明 上次我們了解了一些css濾鏡的基礎(chǔ)知識(shí), 簡單說 CSS濾鏡 filter屬性 這次我們就來用css的濾鏡實(shí)現(xiàn)一個(gè) 火焰的效果。 解釋 showImg(https://segmentfault.co...
閱讀 2609·2021-11-17 09:33
閱讀 3965·2021-10-19 11:46
閱讀 921·2021-10-14 09:42
閱讀 2266·2021-09-22 15:41
閱讀 4239·2021-09-22 15:20
閱讀 4648·2021-09-07 10:22
閱讀 2320·2021-09-04 16:40
閱讀 826·2019-08-30 15:52