實現(xiàn)網(wǎng)頁中圖片輪播是很常見的效果,今天我們來講解如何使用CSS代碼來實現(xiàn)圖片輪播。
首先我們需要準(zhǔn)備圖片和HTML結(jié)構(gòu),圖片可以使用img標(biāo)簽引入,HTML結(jié)構(gòu)可以使用ul和li標(biāo)簽來實現(xiàn),如下所示:
<div class="slider"> <ul class="slider-wrapper"> <li class="slider-item"><img src="image1.jpg"></li> <li class="slider-item"><img src="image2.jpg"></li> <li class="slider-item"><img src="image3.jpg"></li> </ul> </div>
接下來我們需要使用CSS來控制圖片的顯示和輪播效果。首先將ul標(biāo)簽設(shè)置為一行不換行并且寬度為所有子元素寬度之和,這樣圖片就會水平排列呈一行。
.slider-wrapper { white-space: nowrap; width: calc(100% * 3); }
然后將li標(biāo)簽設(shè)置為塊級元素并且寬度為一屏幕寬度,這樣每次只能顯示一張圖片,其他的圖片會隱藏。
.slider-item { display: inline-block; width: 100%; }
接下來使用CSS3過渡動畫技術(shù)來實現(xiàn)圖片的輪播效果。給ul標(biāo)簽添加transform屬性和transition屬性,在transform屬性中設(shè)置translateX函數(shù)來實現(xiàn)平移效果,在transition屬性中設(shè)置動畫的持續(xù)時間和過渡方式,如下所示:
.slider-wrapper { white-space: nowrap; width: calc(100% * 3); transform: translateX(0); transition: transform 0.5s ease-in-out; }
最后使用JavaScript來實現(xiàn)圖片輪播的自動播放,這里使用setInterval函數(shù)來實現(xiàn)定時器,每隔一段時間就將ul標(biāo)簽的transform屬性的值減去一屏幕寬度,從而實現(xiàn)圖片的平移,如下所示:
let sliderWrapper = document.querySelector('.slider-wrapper'); let screenWidth = window.innerWidth; let currentIndex = 0; setInterval(function() { currentIndex = currentIndex === 2 ? 0 : currentIndex + 1; sliderWrapper.style.transform = 'translateX(-' + currentIndex * screenWidth + 'px)'; }, 5000);
這樣就實現(xiàn)了一個簡單的圖片輪播效果。