成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么用純CSS生成火焰

本篇內(nèi)容主要講解“怎么用純CSS生成火焰”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么用純CSS生成火焰”吧!

成都創(chuàng)新互聯(lián)專注于禹州企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,商城建設(shè)。禹州網(wǎng)站建設(shè)公司,為禹州等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站制作,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

今天的小技巧是使用純 CSS 生成火焰,逼真一點(diǎn)的火焰。

嗯,長什么樣子?在 CodePen 上輸入關(guān)鍵字 CSS Fire,能找到這樣的:

怎么用純CSS生成火焰

或者這樣的:

怎么用純CSS生成火焰

我們希望,僅僅使用 CSS ,效果能再更進(jìn)一步嗎?能不能是這樣子:

怎么用純CSS生成火焰

如何實現(xiàn)

嗯,我們需要使用 filter + mix-blend-mode 的組合來完成。

  • 很多 CSS 華而不實的效果都是 filter + mix-blend-mode,很有意思,但是業(yè)務(wù)中根本用不上,當(dāng)然多了解了解總沒壞處。

如上圖,整個蠟燭的骨架, 除去火焰的部分很簡單,掠過不講。主要來看看火焰這一塊如何生成,并且如何賦予動畫效果。

Step 1: filter blur && filter contrast

模糊濾鏡疊加對比度濾鏡產(chǎn)生的融合效果。

單獨(dú)將兩個濾鏡拿出來,它們的作用分別是:

filter: blur():給圖像設(shè)置高斯模糊效果。

filter: contrast():調(diào)整圖像的對比度。

但是,當(dāng)他們“合體”的時候,產(chǎn)生了奇妙的融合現(xiàn)象。

先來看一個簡單的例子:

怎么用純CSS生成火焰

仔細(xì)看兩圓相交的過程,在邊與邊接觸的時候,會產(chǎn)生一種邊界融合的效果,通過對比度濾鏡把高斯模糊的模糊邊緣給干掉,利用高斯模糊實現(xiàn)融合效果。

利用上述 filter blur & filter contrast,我們要先生成一個類似火焰形狀的三角形。(略去過程)

  • 這里類似火焰形狀的三角形的具體實現(xiàn)過程,在這篇文章有詳細(xì)的講解:你所不知道的 CSS 濾鏡技巧與細(xì)節(jié)[1]

怎么用純CSS生成火焰

父元素添加 filter: blur(5px) contrast(20),會變成這樣:

怎么用純CSS生成火焰

Step 2: 火焰粒子動畫

看著已經(jīng)有點(diǎn)樣子了,接下來是火焰動畫,我們先去掉父元素的 filter: blur(5px) contrast(20) ,然后繼續(xù) 。

這里也是利用了 filter 的融合效果,我們在上述火焰中,利用 SASS 隨機(jī)均勻分布大量大小不一的圓形棕色 div  ,隱匿在火焰三角內(nèi)部,大概是這樣:

怎么用純CSS生成火焰

接下來,我們再利用 SASS,給中間每個小圓賦予一個從下往上逐漸消失的動畫,并且均勻賦予不同的 animation-delay,看起來會是這樣:

怎么用純CSS生成火焰

OK,最重要的一步,我們再把父元素的 filter: blur(5px) contrast(20) 打開,神奇的火焰效果就出來了:

怎么用純CSS生成火焰

Step 3: mix-blend-mode 潤色

當(dāng)然,上述效果已經(jīng)很不錯了。經(jīng)過各種嘗試,調(diào)整參數(shù),最后我發(fā)現(xiàn)加上 mix-blend-mode: screen  混合模式,效果更好,得到頭圖上面的最終效果如下:

怎么用純CSS生成火焰

完整源碼在我的 CodePen 上:CodePen Demo -- CSS Fire[2]

另外一些效果

當(dāng)然,掌握了這種方法后,這種生成火焰的技巧也可以遷移到其他效果去。下圖是我鼓搗到另外一個小 Demo,當(dāng) hover 到元素的時候,產(chǎn)生火焰效果:

怎么用純CSS生成火焰

CodePen Demo -- Hover Fire[3]

嗯,這些其實都是對濾鏡及混合模式的一些搭配運(yùn)用。按照慣例,肯定有人會留言噴了,整這些花里胡哨的有什么用,性能又不好,業(yè)務(wù)中敢上不把你的腿給打骨折。

于我而言,虛心接受各種批評質(zhì)疑及各種不同的觀點(diǎn),當(dāng)然我是覺得搞技術(shù)一方面是實用,另一方面是興趣使然,自娛自樂。希望噴子繞道~

回到正題,了解了這種黏糊糊濕答答的技巧后,還可以折騰出其他很多有意思的效果,當(dāng)然可能需要更多的去嘗試,如下面使用一個標(biāo)簽實現(xiàn)的滴水效果:

怎么用純CSS生成火焰

CodePen Demo -- 單標(biāo)簽實現(xiàn)滴水效果[4]

值得注意的細(xì)節(jié)點(diǎn)

動畫雖然美好,但是具體使用的過程中,仍然有一些需要注意的地方:

1.CSS 濾鏡可以給同個元素同時定義多個,例如 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)  處理同一張圖片,得到的效果是不一樣的,原因在于濾鏡的色值處理算法對圖片處理的先后順序。

2.濾鏡動畫需要大量的計算,不斷的重繪頁面,屬于非常消耗性能的動畫,使用時要注意使用場景。記得開啟硬件加速及合理使用分層技術(shù);

3.blur() 混合 contrast()  濾鏡效果,設(shè)置不同的顏色會產(chǎn)生不同的效果,這個顏色疊加的具體算法暫時沒有找到很具體的規(guī)則細(xì)則,使用時比較好的方法是多嘗試不同顏色,觀察取最好的效果;

4.細(xì)心的讀者會發(fā)現(xiàn)上述效果都是基于黑色底色進(jìn)行的,動手嘗試將底色改為白色,效果會大打折扣。

到此,相信大家對“怎么用純CSS生成火焰”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

當(dāng)前標(biāo)題:怎么用純CSS生成火焰
網(wǎng)站URL:http://jinyejixie.com/article36/ggicpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、網(wǎng)站設(shè)計建站公司、網(wǎng)站策劃、ChatGPT、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
长岭县| 白沙| 北海市| 海林市| 宜兴市| 屯昌县| 鄂温| 历史| 治多县| 马尔康县| 微山县| 阿巴嘎旗| 边坝县| 抚州市| 商洛市| 舞钢市| 隆林| 通许县| 冀州市| 东兰县| 凌源市| 衡南县| 宁强县| 子洲县| 胶南市| 蒲江县| 托里县| 徐州市| 太和县| 夏邑县| 三门峡市| 米易县| 上林县| 定陶县| 邵武市| 高平市| 双柏县| 南漳县| 阿拉善左旗| 永城市| 花莲县|