現(xiàn)在的網(wǎng)頁越來越注重美感,圖片輪播已經(jīng)成為越來越多網(wǎng)站的標(biāo)配。那么如何用CSS實現(xiàn)圖片輪播呢?下面我們來講一下具體實現(xiàn)。
HTML結(jié)構(gòu)如下: <div class="slider"> <img src="img1.jpg"> <img src="img2.jpg"> <img src="img3.jpg"> </div> CSS樣式如下: .slider { overflow: hidden; position: relative; width: 600px; height: 400px; } .slider img { position: absolute; top: 0; left: 0; opacity: 0; transition: all .5s ease-in-out; } .slider img:first-child { opacity: 1; }
代碼中,我們首先給圖片輪播的容器設(shè)置了一個寬度和高度,以及overflow:hidden來隱藏超出容器的圖片。然后我們給圖片設(shè)置了絕對定位,并設(shè)置了opacity為0,這樣我們就看不到圖片了。接下來我們設(shè)置了圖片的過渡效果,all表示對所有屬性進行過渡,.5s表示過渡時間為0.5秒,ease-in-out表示動畫效果為先慢后快再慢。我們給第一張圖片設(shè)置了opacity:1,這樣就可以看到第一張圖片了。
接下來我們需要實現(xiàn)圖片的切換效果。我們可以通過定時器來實現(xiàn)。代碼如下:
//JS代碼 var index = 1; //用來表示當(dāng)前顯示的圖片 setInterval(function() { if(index < 3) { index++; } else { index = 1; } document.querySelector(".slider").style.transform = "translateX(-" + (index-1)*600 + "px)"; }, 3000);
代碼中,我們首先設(shè)置了一個index變量,用來表示當(dāng)前顯示的圖片。然后我們通過setInterval函數(shù)每3秒鐘就執(zhí)行一次函數(shù)。每次函數(shù)執(zhí)行時,我們將index加1,這樣就可以顯示下一張圖片。當(dāng)index等于3的時候,說明已經(jīng)顯示了所有圖片,這時我們將index重置為1。最后我們使用translateX對圖片輪播容器進行水平移動,從而展示不同圖片。這里的600是圖片容器的寬度,再乘上(index-1),就是當(dāng)前要顯示圖片的左邊距,再加上"px",就是完整的transform屬性的值了。
這樣,我們就完成了圖片輪播的實現(xiàn)。