CSS波浪進度是Web開發中常見的一種效果,它可以讓進度條變得更加生動,讓用戶更好的理解進度的變化。下面我們來一步步實現這個效果:
<div class="progress-bar"> <div class="progress"></div> </div>
我們先創建一個包含進度條的div元素,內部包含一個用來表示進度的div元素。接下來我們在CSS中添加樣式:
.progress-bar { width: 200px; height: 50px; position: relative; background-color: #eee; } .progress { position: absolute; top: 0; left: 0; width: 0%; height: 100%; background: linear-gradient(to right, #00ccff, #33ccff); }
在這里,我們設置
.progress-bar的寬度為200px,高度為50px。同時設置了它的背景色為灰色。我們將
.progress的定位設置為相對于父元素的絕對定位,并設置了它的初始寬度為0%和高度為100%。這個寬度會在JS中不斷的更新,表示進度的變化。同時,我們使用了線性漸變的背景色,實現了波浪的效果。
let progress = 0; let wave = 5; let speed = 20; let timer = setInterval(function() { progress++; progress %= 101; let waveHeight = wave * Math.sin(progress * Math.PI / 50); document.querySelector('.progress').style.width = progress + '%'; document.querySelector('.progress').style.transform = 'translateY(' + waveHeight + 'px)'; }, speed);
最后,我們使用JS來不斷更新進度對應的寬度和波浪的高度。我們定義了一些變量分別用來表示進度、波浪的高度和動畫速度。在定時器中,我們更新進度,使用正弦函數計算波浪高度,并將它應用到CSS中的變換屬性中。最后,我們使用setInterval函數讓這個動畫不斷的運行。
至此,我們就實現了一個CSS波浪進度效果。你可以在自己的項目中使用這個效果,讓進度條變得更加生動。