純CSS實現(xiàn)波浪移動效果的示例

在某些頁面上常??吹讲ɡ说男Ч?,雖然只有裝飾的作用,但是卻讓頁面看上去更生動了,同時某些情況下也能起到進度條的作用,而波浪的形式卻比普通進度條更美觀有趣。
如果想要實現(xiàn)波浪的效果,作者想到的第一個方法是通過 canvas 繪制波浪,然后用幀動畫讓波浪運動起來。這種方式實現(xiàn)的波浪效果應(yīng)該是最好的,能夠?qū)崿F(xiàn)很多細(xì)節(jié),比如控制波峰的高度、改變波浪的數(shù)量、根據(jù)前一個波浪的高度計算后一個波浪的高度等等。
但是往往需求并不會這么復(fù)雜,產(chǎn)品經(jīng)理和設(shè)計想要的只是一個看上去還比較美觀的波浪效果而已。如果用 canvas 去做,就實在是大材小用了,耗時耗力。所以這種情況下,就可以嘗試使用 css 來完成這個小需求。
分析波浪效果
上面是作者完成的波浪效果的其中一種(不會做 gif,就用多張圖片拼貼在一起代替吧),它有兩個波峰,這兩個波峰動起來時,會有一種向右推進的效果。我們先一個一個來看,如果要實現(xiàn)一個波峰,我們應(yīng)該怎么做?
波峰具有弧度,在 css 中能夠?qū)崿F(xiàn)弧度效果的是border-raduis這個屬性;而對于向右推進的效果,單個來看的話,其實可以理解為是旋轉(zhuǎn)動畫,我們可以通過animation來實現(xiàn)。
// html <div class="wave"></div> // style .wave { width: 300px; height: 300px; border-raduis: 50%; background: blue; }
上面代碼中的.wave在頁面上的顯示效果是一個圓形。雖然還沒有添加動畫,但是我們已經(jīng)可以預(yù)想到,即使旋轉(zhuǎn)起來,我們視覺上看來并沒有在運動。這要怎么解決呢?其實很簡單,只要讓每一個角的弧度都不同就行了。同時,讓寬高不同,可以使繪制出來的效果更好。
.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; }
然后通過動畫使這個不規(guī)則的形狀動起來。
.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 動畫的使用,可以參考之前的一篇文章:
到這里,一個波浪的實現(xiàn)就完成了。第二個波浪的實現(xiàn)步驟和第一個是相同的,但是可以對width height border-raduis animation 這些屬性進行修改,使兩個波浪的運動節(jié)奏不同,有快有慢有高有低,這樣波浪的效果就會更真實。
想要看源碼的小伙伴可以戳下面這個鏈接:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
純css3制作鼠標(biāo)懸停波浪形狀彈性下拉菜單特效源碼
純css3制作鼠標(biāo)懸停波浪形狀彈性下拉菜單特效源碼,當(dāng)鼠標(biāo)懸停波浪形菜單欄,彈出列表信息,鼠標(biāo)離開自動收縮。效果非常逼真,本段代碼可以在各個網(wǎng)頁使用,有需要的朋友可2017-12-18- 這是一款基于css3實現(xiàn)逼真的波浪起伏動畫特效源碼。畫面上3層波浪涌動構(gòu)成此起彼伏、連綿不斷的波浪涌動視覺效果2017-07-27
- CSS3實現(xiàn)的波浪閃動文字動畫特效源碼是一款炫酷文字動畫特效,總共有4種效果,有波浪文字效果,文字閃動效果等多種效果,同時實現(xiàn)的這四類效果中,都可以到處相應(yīng)的.css文2017-01-25
純css3實現(xiàn)的音階波浪loading加載動畫特效源碼
這是一款采用純css3實現(xiàn)的音階波浪loading加載動畫特效源碼。可呈現(xiàn)出由中間向兩邊上下波動的loading加載效果2016-12-27- 最近在做項目的時候,發(fā)現(xiàn)文字下方有個波浪線,尋思著,能不能用css來實現(xiàn),減少資源,遂參考一些資料,后來真的實現(xiàn)了。所以就有了這篇文章了,本文詳細(xì)的介紹了利用CSS32016-11-20
- 這是一款采用純css3實現(xiàn)的文字波浪動畫特效源碼,畫面上的文字呈現(xiàn)出帶有3D立體凹凸?jié)u變效果的波浪動畫,該特效沒有引入任何外部圖形元素,且漸變效果流暢自然2016-05-28
- 我們分享過許多各種各樣的CSS3菜單,應(yīng)該說效果都比傳統(tǒng)的CSS菜單強悍。這次要分享的這款CSS3菜單有點特別,菜單的整體形狀類似波浪形,鼠標(biāo)滑過菜單項時也會改變背景色表2014-10-18
- 一款3D波浪形動畫特效。利用一堆div加上CSS3對每個div的控制2014-06-04
CSS Houdini實現(xiàn)動態(tài)波浪紋效果
這篇文章主要介紹了CSS Houdini實現(xiàn)動態(tài)波浪紋效果,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-30