在某些頁面上常常看到波浪的效果,雖然只有裝飾的作用,但是卻讓頁面看上vuqvcr去更生動了,同時某些情況下也能起到進度條的作用,而波浪的形式卻比普通進度條更美觀有趣。
如果想要實現波浪的效果,作者想到的第乙個方法是通過 canvas 繪製波浪,然後用幀動畫讓波浪運動起來。這種方式實現的波浪效果應該是最好的,能夠實現很多細節,比如控制波峰的高度、改變波浪的數量、根據前乙個波浪的高度計算後乙個波浪的高度等等。
但是往往需求並不會這麼複雜,產品經理和設計想要的只是乙個看上去還比較美觀的波浪效果而已。如果用 canvas 去做,就實在是大材小用了,耗時耗力。所以這種情況下,就可以嘗試使用 css 來完成這個小需求。
分析波浪效果
上面是作者完成的波浪效果的其中一種(不會做 gif,就用多張拼貼在一起代替吧),它有兩個波峰,這兩個波峰動起來時,會有一種向右推進的效果。我們先乙個乙個來看,如果要實現乙個波峰,我們應該怎麼做?
波峰具有弧度,在 css 中能夠實現弧度效果的是border-raduis這個屬性;而對於向右推進的效果,單個來看的話,其實可以理解為是旋轉動畫,我們可以通過animation來實現。
// html
// style
.w**e
上面**中的.w**e在頁面上的顯示效果是乙個圓形。雖然還沒有新增動畫,但是我們已經可以預想到,即使旋轉起來,我們視覺上看來並沒有在運動。這要怎麼解決呢?其實很簡單,只要讓每乙個角的弧度都不同就行了。同時,讓寬高不同,可以使繪製出來的效果更好。
.w**e
然後通過動畫使這個不規則的形狀動起來。
.w**e
@keyframes w**e
100%
}關於 css 動畫的使用,可以參考之前的一篇文章:
純css實現輪播圖效果
到這裡,乙個波浪的實現就完成了。第二個波浪的實現步驟和第乙個是相同的,但是可以對width height border-raduis animation 這些屬性進行修改,使兩個波浪的運動節奏不同,有快有慢有高有低,這樣波浪的效果就會更真實。
想要看原始碼的小夥伴可以戳下面這個鏈結:
demo on github
本文標題: 純css實現波浪移動效果的示例
本文位址:
純CSS實現吸頂效果
position的屬性有哪些?還有乙個position的屬性值 position sticky position sticky 粘性定位,是相對定位和固定定位的混合。元素在跨越特定閾值前為相對定位,之後為固定定位。著作權歸作者所有。注意 1 position sticky還是乙個實驗性的屬性值。著作...
純CSS3實現的標籤效果
1.效果分析 純css3實現的標籤效果,如圖1所示,看看demo。該標籤主要有三個部分組成,左側的三角形 右側的圓角矩形和文字前面的小圓點。重點在左側三角形和文字前面圓點的實現。2.技術難點 三角形利用寬和高為零的元素的邊框實現。將邊框設定為12px solid transparent,然後將右側邊...
純CSS3實現的標籤效果
1.效果分析 純css3實現的標籤效果,如圖1所示,看看demo。該標籤主要有三個部分組成,左側的三角形 右側的圓角矩形和文字前面的小圓點。重點在左側三角形和文字前面圓點的實現。2.技術難點 三角形利用寬和高為零的元素的邊框實現。將邊框設定為12px solid transparent,然後將右側邊...