CSS特效輪播圖是一種流行的網頁設計技術,它通過CSS代碼和JavaScript腳本來實現視覺效果的切換,讓網頁看起來更加生動、活躍。下面我們來看一下CSS特效輪播圖的相關代碼:
/*HTML結構*/ <div class="slider"> <div class="slider-wrapper"> <div class="slide"> <img src="slide1.jpg" alt="Slide 1"> </div> <div class="slide"> <img src="slide2.jpg" alt="Slide 2"> </div> <div class="slide"> <img src="slide3.jpg" alt="Slide 3"> </div> </div> </div> /*CSS樣式*/ .slider { position: relative; overflow: hidden; } .slider-wrapper { position: absolute; top: 0; left: 0; display: flex; transition: transform 0.6s ease-in-out; } .slide { flex: 0 0 auto; height: 100%; } .slide img { width: 100%; } /*JavaScript腳本*/ const slider = document.querySelector('.slider'); const sliderWrapper = document.querySelector('.slider-wrapper'); const slides = document.querySelectorAll('.slide'); let slideWidth = slides[0].clientWidth; let currentSlide = 0; function init() { sliderWrapper.style.width = slideWidth * slides.length + 'px'; slides.forEach(slide =>{ slide.style.width = slideWidth + 'px'; }); setInterval(nextSlide, 5000); } function nextSlide() { currentSlide++; if (currentSlide >= slides.length) { currentSlide = 0; } sliderWrapper.style.transform = `translateX(${-currentSlide * slideWidth}px)`; } init();
首先,我們需要給輪播圖的容器元素(<div class="slider">
)設置position: relative;
和overflow: hidden;
屬性,讓輪播圖的視圖顯示為容器元素的一個相對定位的矩形,而超出容器矩形的內容將被隱藏。
然后,我們使用子元素的flex
屬性來實現輪播圖的自適應布局。容器元素的子元素為輪播圖的每一幀(<div class="slide">
),它們通過設置flex: 0 0 auto;
、height: 100%;
和width: 100%;
等屬性實現自動調整大小,同時子元素之間的間距通過容器元素的display: flex;
屬性來控制。
最后,我們使用JavaScript腳本來實現輪播圖的循環切換。通過設置setInterval
函數和nextSlide
事件來進行輪播圖的循環效果,而輪播圖的具體效果則通過改變子元素的transform
屬性來實現。