CSS3的出現為網頁設計注入了新的活力,它使得開發者們能夠創造出更多豐富多彩的動畫效果。其中,線條波浪動畫效果是一種非常炫酷的效果,可以為網頁增添更多的藝術感和動態感。
.wave { position: relative; height: 200px; width: 100%; overflow: hidden; background-color: #f1f1f1; } .wave:before { content: ""; display: block; position: absolute; left: -10%; width: 120%; height: 100%; background: url("wave.svg") repeat-x center center; animation: wave 2s cubic-bezier(0.36, 0.43, 0.46, 0.9) infinite; } @keyframes wave { 0% { transform: translate3d(0, 0, 0); } 100% { transform: translate3d(-50%, 0, 0); } }
實現這個效果的關鍵在于使用了SVG background-image和動畫animation。在樣式中我們首先定義了一個類名為“wave”的div容器,它的高度和寬度以及背景顏色由我們自己決定,之后使用:before偽類創建出一個可以無限滾動的波形div,所使用的背景圖案我們在之前使用的wave.svg文件中定義了,CSS中background屬性與background-image屬性不同的是,它包含了背景圖案的其他屬性,如背景顏色、背景重復方式、背景定位等,這些屬性在定義流動的波形圖案時非常重要。
除了創建波形圖案之外,我們還要使用animation屬性為它創建一個循環動畫。具體來說,我們先為它定義一個keyframes,即一個動畫序列,它會讓波紋在指定時間內產生“流動”的效果,關鍵幀使用百分比指定,其中0%表示動畫開始的狀態,100%表示動畫結束狀態。animation屬性應該相當好理解了,它的語法就像是這樣的:
animation: name duration timing-function delay iteration-count direction;
name表示動畫名稱,如果沒有指定name則其他屬性都沒有意義。duration表示動畫的持續時間。timing-function是時間函數,它用于指定動畫的速度曲線。delay表示動畫延遲多久開始,iteration-count表示動畫播放的次數,可使用infinite無限播放。direction表示動畫的方向,可以指定為alternate讓動畫反向播放。
通過這樣的代碼,我們就可以輕松地實現一個線條波浪動畫效果了。如果你想讓你的網頁更加生動有趣,就可以嘗試一下這個效果!