jQuery輪播圖是一種常見的網(wǎng)頁(yè)特效,通過切換多張圖片實(shí)現(xiàn)輪播效果,為網(wǎng)頁(yè)增添了不少交互性和美觀度。其原理主要包括以下幾個(gè)步驟:
$(function() { // 定義變量 var index = 0; var timer = null; // 自動(dòng)輪播函數(shù) function autoPlay() { timer = setInterval(function() { index++; if (index > 3) { index = 0; } changeImg(index); }, 2000); } // 切換圖片函數(shù) function changeImg(index) { $('.slide li').eq(index).addClass('active').siblings().removeClass('active'); $('.slide img').eq(index).stop().fadeIn(500).siblings().stop().fadeOut(500); } // 鼠標(biāo)移入事件 $('.slide').hover(function() { clearInterval(timer); }, function() { autoPlay(); }); // 左右箭頭點(diǎn)擊事件 $('.prev').click(function() { index--; if (index < 0) { index = 3; } changeImg(index); }); $('.next').click(function() { index++; if (index > 3) { index = 0; } changeImg(index); }); // 默認(rèn)自動(dòng)輪播 autoPlay(); });
首先,在jQuery代碼中引入了自運(yùn)行函數(shù),確保了頁(yè)面加載完成后即可執(zhí)行相應(yīng)的代碼。
然后定義了兩個(gè)變量:index表示當(dāng)前圖片的索引值,timer表示輪播計(jì)時(shí)器。
自動(dòng)輪播函數(shù)中使用setInterval()方法來定時(shí)切換圖片,每2秒鐘index自增1,當(dāng)index大于3時(shí),重置為0,然后調(diào)用切換圖片函數(shù)changeImg(),將新的index值傳入。
切換圖片函數(shù)changeImg()中,使用addClass()方法為索引值為index的圖片設(shè)置一個(gè)名為active的類,同時(shí)移除其兄弟元素的active類,使得當(dāng)前圖片顯示出來,其余圖片隱藏。然后使用fadeIn()和fadeOut()方法來實(shí)現(xiàn)“淡入淡出”的效果,這里使用stop()方法停止當(dāng)前的動(dòng)畫效果,以便在快速點(diǎn)擊時(shí)切換動(dòng)畫不會(huì)疊加。
鼠標(biāo)移入事件中使用clearInterval()方法停止自動(dòng)輪播,鼠標(biāo)移出事件中重新調(diào)用自動(dòng)輪播函數(shù),實(shí)現(xiàn)輪播圖的暫停和恢復(fù)。
左右箭頭點(diǎn)擊事件中,分別將index減1或加1,然后根據(jù)邊界條件做判斷,實(shí)現(xiàn)向前或向后切換。同時(shí)也調(diào)用了切換圖片函數(shù)changeImg(),將新的index值傳入。
最后,使用autoPlay()函數(shù)默認(rèn)啟動(dòng)自動(dòng)輪播,實(shí)現(xiàn)輪播圖的自動(dòng)播放。