国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

CSS 火焰?不在話下

olle / 538人閱讀

摘要:今天的小技巧是使用純生成火焰,逼真一點的火焰。如上圖,整個蠟燭的骨架,除去火焰的部分很簡單,掠過不講。利用上述,我們要先生成一個類似火焰形狀的三角形。

正文從下面開始。

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

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

或者這樣的:

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

如何實現

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

很多 CSS 華而不實的效果都是 filter + mix-blend-mode,很有意思,但是業務中根本用不上,當然多了解了解總沒壞處。

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

Step 1: filter blur && filter contrast

模糊濾鏡疊加對比度濾鏡產生的融合效果。

多帶帶將兩個濾鏡拿出來,它們的作用分別是:

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

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

但是,當他們“合體”的時候,產生了奇妙的融合現象。

先來看一個簡單的例子:

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

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

這里類似火焰形狀的三角形的具體實現過程,在這篇文章有詳細的講解:你所不知道的 CSS 濾鏡技巧與細節

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

Step 2: 火焰粒子動畫

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

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

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

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

Step 3: mix-blend-mode 潤色

當然,上述效果已經很不錯了。經過各種嘗試,調整參數,最后我發現加上 mix-blend-mode: screen 混合模式,效果更好,得到頭圖上面的最終效果如下:

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

另外一些效果

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

CodePen Demo -- Hover Fire

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

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

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

CodePen Demo -- 單標簽實現滴水效果

值得注意的細節點

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

CSS 濾鏡可以給同個元素同時定義多個,例如 filter: blur(5px) contrast(150%) brightness(1.5) ,但是濾鏡的先后順序不同產生的效果也是不一樣的;

也就是說,使用 filter: blur(5px) contrast(150%) brightness(1.5)filter:  brightness(1.5) contrast(150%) blur(5px)  處理同一張圖片,得到的效果是不一樣的,原因在于濾鏡的色值處理算法對圖片處理的先后順序。

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

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

細心的讀者會發現上述效果都是基于黑色底色進行的,動手嘗試將底色改為白色,效果會大打折扣。

最后

本文只是簡單的介紹了整個思路過程,許多 CSS 代碼細節,調試過程沒有展現出來。主要幾個 CSS 屬性默認大家已經掌握了大概,閱讀后可以自行去了解補充更多細節:

filter

mix-blend-mode

更多精彩 CSS 技術文章匯總在我的 Github -- iCSS ,持續更新,歡迎點個 star 訂閱收藏。

好了,本文到此結束,希望對你有幫助 :)

如果還有什么疑問或者建議,可以多多交流,原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

最后,新開通的公眾號求關注,形式希望是更短的篇幅,質量更高一些的技巧類文章,包括但不局限于 CSS:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/116015.html

相關文章

  • CSS 火焰?不在話下

    摘要:下圖是我鼓搗到另外一個小,當到元素的時候,產生火焰效果嗯,這些其實都是對濾鏡及混合模式的一些搭配運用。主要幾個屬性默認大家已經掌握了大概,閱讀后可以自行去了解補充更多細節更多精彩技術文章匯總在我的,持續更新,歡迎點個訂閱收藏。正文從下面開始。 今天的小技巧是使用純 CSS 生成火焰,逼真一點的火焰。 嗯,長什么樣子?在 CodePen 上輸入關鍵字?CSS Fire,能找到這樣的: 或者...

    Cciradih 評論0 收藏0
  • 簡單說 通過CSS的濾鏡 實現 火焰效果

    摘要:說明上次我們了解了一些濾鏡的基礎知識,簡單說濾鏡屬性這次我們就來用的濾鏡實現一個火焰的效果。解釋要實現上面的火焰效果,我們先來了解一些必要的東西。上次我們說過兩個濾鏡,和。 說明 上次我們了解了一些css濾鏡的基礎知識, 簡單說 CSS濾鏡 filter屬性 這次我們就來用css的濾鏡實現一個 火焰的效果。 解釋 showImg(https://segmentfault.co...

    Jaden 評論0 收藏0
  • 簡單說 通過CSS的濾鏡 實現 火焰效果

    摘要:說明上次我們了解了一些濾鏡的基礎知識,簡單說濾鏡屬性這次我們就來用的濾鏡實現一個火焰的效果。解釋要實現上面的火焰效果,我們先來了解一些必要的東西。上次我們說過兩個濾鏡,和。 說明 上次我們了解了一些css濾鏡的基礎知識, 簡單說 CSS濾鏡 filter屬性 這次我們就來用css的濾鏡實現一個 火焰的效果。 解釋 showImg(https://segmentfault.co...

    mushang 評論0 收藏0
  • 簡單說 通過CSS的濾鏡 實現 火焰效果

    摘要:說明上次我們了解了一些濾鏡的基礎知識,簡單說濾鏡屬性這次我們就來用的濾鏡實現一個火焰的效果。解釋要實現上面的火焰效果,我們先來了解一些必要的東西。上次我們說過兩個濾鏡,和。 說明 上次我們了解了一些css濾鏡的基礎知識, 簡單說 CSS濾鏡 filter屬性 這次我們就來用css的濾鏡實現一個 火焰的效果。 解釋 showImg(https://segmentfault.co...

    keithxiaoy 評論0 收藏0

發表評論

0條評論

olle

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<