国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > CSS > 正文

純CSS實(shí)現(xiàn)波浪移動(dòng)效果的示例

2024-07-11 08:58:54
字體:
供稿:網(wǎng)友

在某些頁面上常??吹讲ɡ说男Ч?,雖然只有裝飾的作用,但是卻讓頁面看上去更生動(dòng)了,同時(shí)某些情況下也能起到進(jìn)度條的作用,而波浪的形式卻比普通進(jìn)度條更美觀有趣。

如果想要實(shí)現(xiàn)波浪的效果,作者想到的第一個(gè)方法是通過 canvas 繪制波浪,然后用幀動(dòng)畫讓波浪運(yùn)動(dòng)起來。這種方式實(shí)現(xiàn)的波浪效果應(yīng)該是最好的,能夠?qū)崿F(xiàn)很多細(xì)節(jié),比如控制波峰的高度、改變波浪的數(shù)量、根據(jù)前一個(gè)波浪的高度計(jì)算后一個(gè)波浪的高度等等。

但是往往需求并不會(huì)這么復(fù)雜,產(chǎn)品經(jīng)理和設(shè)計(jì)想要的只是一個(gè)看上去還比較美觀的波浪效果而已。如果用 canvas 去做,就實(shí)在是大材小用了,耗時(shí)耗力。所以這種情況下,就可以嘗試使用 css 來完成這個(gè)小需求。

分析波浪效果

上面是作者完成的波浪效果的其中一種(不會(huì)做 gif,就用多張圖片拼貼在一起代替吧),它有兩個(gè)波峰,這兩個(gè)波峰動(dòng)起來時(shí),會(huì)有一種向右推進(jìn)的效果。我們先一個(gè)一個(gè)來看,如果要實(shí)現(xiàn)一個(gè)波峰,我們應(yīng)該怎么做?

波峰具有弧度,在 css 中能夠?qū)崿F(xiàn)弧度效果的是border-raduis這個(gè)屬性;而對(duì)于向右推進(jìn)的效果,單個(gè)來看的話,其實(shí)可以理解為是旋轉(zhuǎn)動(dòng)畫,我們可以通過animation來實(shí)現(xiàn)。

// html<div class="wave"></div>// style.wave {    width: 300px;    height: 300px;    border-raduis: 50%;    background: blue;}

上面代碼中的.wave在頁面上的顯示效果是一個(gè)圓形。雖然還沒有添加動(dòng)畫,但是我們已經(jīng)可以預(yù)想到,即使旋轉(zhuǎn)起來,我們視覺上看來并沒有在運(yùn)動(dòng)。這要怎么解決呢?其實(shí)很簡(jiǎn)單,只要讓每一個(gè)角的弧度都不同就行了。同時(shí),讓寬高不同,可以使繪制出來的效果更好。

.wave {    width: 250px;    height: 300px;    border-top-right-radius: 150px;    border-top-left-radius: 150px;    border-bottom-right-radius: 150px;    border-bottom-left-radius: 140px;    background: #adcbfe;}

然后通過動(dòng)畫使這個(gè)不規(guī)則的形狀動(dòng)起來。

.wave {    width: 250px;    height: 300px;    border-top-right-radius: 150px;    border-top-left-radius: 150px;    border-bottom-right-radius: 150px;    border-bottom-left-radius: 140px;    background: #adcbfe;    animation: wave 4s linear infinite;}@keyframes wave {    0% {transform: rotate(0deg);}    100% {transform: rotate(360deg);}}

關(guān)于 css 動(dòng)畫的使用,可以參考之前的一篇文章:

純CSS實(shí)現(xiàn)輪播圖效果

到這里,一個(gè)波浪的實(shí)現(xiàn)就完成了。第二個(gè)波浪的實(shí)現(xiàn)步驟和第一個(gè)是相同的,但是可以對(duì)width height border-raduis animation 這些屬性進(jìn)行修改,使兩個(gè)波浪的運(yùn)動(dòng)節(jié)奏不同,有快有慢有高有低,這樣波浪的效果就會(huì)更真實(shí)。

想要看源碼的小伙伴可以戳下面這個(gè)鏈接:

demo on github

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 天长市| 南雄市| 德兴市| 寻甸| 外汇| 石阡县| 宜宾市| 丰县| 萝北县| 商水县| 塘沽区| 永清县| 内乡县| 九寨沟县| 林甸县| 奉化市| 大安市| 安远县| 临湘市| 黄冈市| 平湖市| 焦作市| 双城市| 韩城市| 垦利县| 普洱| 桐城市| 四川省| 西吉县| 南京市| 菏泽市| 龙州县| 平安县| 洛浦县| 化德县| 桓仁| 博白县| 上虞市| 荣昌县| 曲松县| 瑞安市|