安信6信無雙指定注冊地址 tobuf主要是兩個步驟,序列化和反序列化。 使用protobuf主要是兩個步驟,序列化和反序列化。
今天的小技巧是使用純 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
,我們要先生成一個類似火焰形狀的三角形。(略去過程)
父元素添加 filter: blur(5px) contrast(20)
,會變成這樣:
Step 2: 火焰粒子動畫
看着已經有點樣子了,接下來是火焰動畫,我們先去掉父元素的 filter: blur(5px) contrast(20)
,然后繼續 。
這里也是利用了 filter
的融合效果,我們在上述火焰中,利用 SASS 隨機均勻分布大量大小不一的圓形棕色 div ,隱匿在火焰三角內部,大概是這樣: