CSS線性漸變的凹面矩形過渡動效的實現(xiàn)

本文聊一聊線性漸變的凹面矩形過渡動效的難點和思路,主要介紹凹面矩形實現(xiàn)、給凹面矩形加線性漸變、線性漸變背景色的過渡。如果有更好的實現(xiàn)方案,歡迎在評論區(qū)和我討論。
上圖
實現(xiàn)凹面矩形
實現(xiàn)這個樣式的靈感來自網(wǎng)上一篇使用css實現(xiàn)內(nèi)凹角的文章,描述如何實現(xiàn)chrome標(biāo)簽頁的內(nèi)凹角效果,大概是下面這樣子:
使用 radial-gradient
徑向漸變來實現(xiàn),將漸變的模糊距離縮小到0就能看到清晰的圓形界限。 按照這個思路就能實現(xiàn)內(nèi)凹矩形的樣式了,通過調(diào)整漸變的 position
控制中心點的位置,調(diào)整徑向圓的size可以控制凹面的彎曲程度,就像下面這樣:
可以在MDN的徑向漸變demo里調(diào)試:
background: radial-gradient(300px 300px at 112px 0, #eee 75%, #333 75%);
小細(xì)節(jié)
- 徑向漸變?nèi)绻:嚯x為0,會看到圓形的邊界有很明顯的鋸齒,增加1px的模糊距離可以消除鋸齒。(這就是傳說中的抗鋸齒嗎?)
- android 4.4.4不兼容徑向漸變。
實現(xiàn)線性漸變的凹面矩形
上一節(jié)已經(jīng)實現(xiàn)了凹面矩形,那如何給凹面矩形再設(shè)置線性漸變呢?background已經(jīng)被使用了,不能又設(shè)置徑向漸變又設(shè)置線性漸變。
可以使用 mask-image
來實現(xiàn)摳圖的效果,MDN的例子:
MDN的例子使用五角星形狀的svg在綠色的背景上摳圖得到了綠色的五角星,要實現(xiàn)漸變的凹面矩形可以用凹面矩形的形狀在線性漸變的背景上摳圖。
用 mask-image
設(shè)置形狀, background
設(shè)置線性漸變:
.xxx { background: linear-gradient(115deg, #ff66ff, #4db8ff); mask-image: radial-gradient(300px 300px at 112px 0, rgba(255, 255, 255, 0) 75%, #333 75%); }
效果:
小細(xì)節(jié)
mask-image在移動端的兼容性竟然比徑向漸變要好,安卓4.4.4是支持的。
漸變背景色的過渡
background-image本身是不支持過渡動畫的,但是可以通過一些騷操作來實現(xiàn),張鑫旭老師的文章說得非常詳細(xì):
https://www.zhangxinxu.com/wordpress/2020/08/background-image-animation/
https://www.zhangxinxu.com/wordpress/2018/03/background-gradient-transtion/
background-image不支持過渡動畫,但是opacity支持呀,在之前的線性漸變凹面矩形上再疊加一層偽元素,設(shè)置偽元素背景色為另一個線性漸變色,然后控制偽元素的opacity,實現(xiàn)線性漸變過渡效果。
到此這篇關(guān)于CSS線性漸變的凹面矩形過渡動效的實現(xiàn)的文章就介紹到這了,更多相關(guān)CSS線性漸變凹面矩形過渡內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
- 這篇文章主要介紹了CSS3實現(xiàn)線性漸變用法詳解,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-07
CSS 實現(xiàn)漸變效果小結(jié)( linear-gradient線性漸變 和 radial-gradient徑
這篇文章主要介紹了CSS 實現(xiàn)漸變效果的代碼( linear-gradient線性漸變 和 radial-gradient徑向漸變),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的2020-04-16CSS3 linear-gradient線性漸變生成加號和減號的方法
本篇文章主要介紹了CSS3 linear-gradient線性漸變生成加號和減號的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-21CSS3,線性漸變(linear-gradient)的使用總結(jié)
今天這篇文章我們在一起來看看 CSS3 中實現(xiàn)漸變效果的 Gradient 屬性的具體用法。在以前,漸變效果和陰影、圓角效果一樣都是做成圖片,直接編寫 CSS 代碼就可以實現(xiàn)。2017-01-09- 這篇文章主要為大家詳細(xì)介紹了CSS3 漸變(Gradients)之CSS3 線性漸變的相關(guān)資料,了解學(xué)習(xí)CSS3 線性漸變,感興趣的小伙伴們可以參考一下2016-07-08
利用CSS3的線性漸變linear-gradient制作邊框的示例
linear-gradient線條用來制作邊框還是比較給力的,尤其是利用其描邊可以制作一些復(fù)制的邊框效果,這里我們就來看一下利用CSS3的線性漸變linear-gradient制作邊框的示例2016-06-02- 下面小編就為大家?guī)硪黄钊肫饰鯟SS中的線性漸變linear-gradient。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考2016-04-12
- 這篇文章主要介紹了CSS3中顏色線性漸變實戰(zhàn),示例中展示了代碼設(shè)置不同漸變方向的效果,需要的朋友可以參考下2015-07-18
純CSS實現(xiàn)顏色漸變效果(包含環(huán)形漸變、線性漸變、彩虹效果等)
通過CSS border-radius,我向大家展示了如何實現(xiàn)方形元素的圓角效果,這解決了以前美工畫出這種效果而開發(fā)人員無法實現(xiàn)的問題。CSS漸變色(Gradients)也是一個類似的技術(shù)。2014-05-07- 本文為大家介紹下css3 線性漸變和徑向漸變的應(yīng)用示例,線性漸變:ie6以下不兼容;徑向漸變:只支持firefox、Chrome和Safari,需要的朋友可以參考下2014-04-08