要實(shí)現(xiàn)這種圖片輪顯效果,我們需要使用JavaScript監(jiān)聽網(wǎng)頁加載及滾動(dòng)事件,控制圖片的顯示和隱藏。下面是一段簡單的JavaScript代碼,實(shí)現(xiàn)了一組三張圖片的輪顯效果:
<html> <head> <style> .slider {width: 400px; height: 300px; overflow: hidden;} .slider img {width: 400px; height: 300px; float: left; display: none;} </style> <script> var count = 0; var timer = null; function slider() { var imgs = document.querySelectorAll('.slider img'); var len = imgs.length; count++; if (count >= len) { count = 0; } for (var i = 0; i < len; i++) { imgs[i].style.display = 'none'; } imgs[count].style.display = 'block'; } window.onload = function() { timer = setInterval(slider, 2000); } window.onunload = function() { clearInterval(timer); } </script> </head> <body> <div class="slider"> <img src="img1.jpg"> <img src="img2.jpg"> <img src="img3.jpg"> </div> </body> </html>
在這段代碼中,我們使用了兩個(gè)JavaScript函數(shù):slider和setInterval。slider函數(shù)是具體的輪顯實(shí)現(xiàn)函數(shù),它會(huì)在定時(shí)器調(diào)用的時(shí)候被執(zhí)行。setInterval函數(shù)是一個(gè)定時(shí)器函數(shù),它用于定時(shí)執(zhí)行slider函數(shù)。我們?cè)陧撁婕虞d時(shí)使用window.onload函數(shù)啟動(dòng)定時(shí)器,當(dāng)頁面關(guān)閉時(shí)使用window.onunload函數(shù)清除定時(shí)器。
上述代碼實(shí)現(xiàn)的圖片輪顯效果非常簡單,但是它只能輪顯三張圖片。我們可以將該代碼復(fù)制多次,并修改圖片地址,來實(shí)現(xiàn)更多的圖片輪顯。但是,這樣做會(huì)造成代碼臃腫,代碼維護(hù)難度也會(huì)加大。我們可以將該代碼進(jìn)行封裝,使它變得更加通用和易用。
下面是一個(gè)封裝好的JavaScript圖片輪顯類:
<html> <head> <style> .slider {width: 400px; height: 300px; overflow: hidden;} .slider img {width: 400px; height: 300px; float: left; display: none;} </style> <script src="slider.js"></script> </head> <body> <div class="slider"></div> <script> var imgs = [ 'img1.jpg', 'img2.jpg', 'img3.jpg' ]; var slider = new Slider('.slider', imgs); slider.start(); </script> </body> </html>
在這段代碼中,我們使用了一個(gè)名為Slider的函數(shù),它接受兩個(gè)參數(shù):輪顯容器的選擇器和圖片數(shù)組。在Slider函數(shù)中,我們使用了JavaScript面向?qū)ο蟮姆绞絹矸庋b具體實(shí)現(xiàn)。我們使用了原型(prototype)來定義了start和stop方法,它們分別用于啟動(dòng)和停止定時(shí)器。我們使用了構(gòu)造函數(shù)(constructor)來初始化圖片輪顯容器和圖片。這樣,我們就可以根據(jù)需要?jiǎng)?chuàng)建多個(gè)Slider對(duì)象,實(shí)現(xiàn)不同的圖片輪顯效果。
JavaScript圖片輪顯是一個(gè)非常實(shí)用的前端功能,它可以為網(wǎng)頁提供動(dòng)態(tài)、生動(dòng)的展示效果。我們可以根據(jù)需要選擇不同的實(shí)現(xiàn)方式,來實(shí)現(xiàn)不同的圖片輪顯效果。但是,我們要注意代碼的可讀性、可維護(hù)性,盡量使用封裝好的類或庫,來提高代碼的復(fù)用性和可擴(kuò)展性。