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

首頁 > 開發 > CSS > 正文

純CSS實現波浪移動效果的示例

2024-07-11 08:31:55
字體:
來源:轉載
供稿:網友

在某些頁面上常常看到波浪的效果,雖然只有裝飾的作用,但是卻讓頁面看上去更生動了,同時某些情況下也能起到進度條的作用,而波浪的形式卻比普通進度條更美觀有趣。

如果想要實現波浪的效果,作者想到的第一個方法是通過 canvas 繪制波浪,然后用幀動畫讓波浪運動起來。這種方式實現的波浪效果應該是最好的,能夠實現很多細節,比如控制波峰的高度、改變波浪的數量、根據前一個波浪的高度計算后一個波浪的高度等等。

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

分析波浪效果

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

波峰具有弧度,在 css 中能夠實現弧度效果的是border-raduis這個屬性;而對于向右推進的效果,單個來看的話,其實可以理解為是旋轉動畫,我們可以通過animation來實現。

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

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

.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;}

然后通過動畫使這個不規則的形狀動起來。

.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);}}

關于 css 動畫的使用,可以參考之前的一篇文章:

純CSS實現輪播圖效果

到這里,一個波浪的實現就完成了。第二個波浪的實現步驟和第一個是相同的,但是可以對width height border-raduis animation 這些屬性進行修改,使兩個波浪的運動節奏不同,有快有慢有高有低,這樣波浪的效果就會更真實。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东城区| 辽中县| 兰州市| 锦屏县| 太白县| 怀仁县| 双峰县| 平阴县| 华池县| 吴桥县| 乌兰浩特市| 德阳市| 神农架林区| 锦屏县| 十堰市| 门头沟区| 和顺县| 探索| 抚远县| 酒泉市| 漳平市| 龙游县| 三原县| 汉源县| 成都市| 成安县| 阿尔山市| 佛山市| 桐城市| 屏南县| 沧源| 仪陇县| 上饶县| 武定县| 兴国县| 宿州市| 鲜城| 温宿县| 霍城县| 宁武县| 黔南|