仿京東輪播圖詳解版jQuery
阿新 • • 發佈:2019-02-02
$(function () {
var index = 0;//用index記錄下標,預設為0
var lis = $('.slider li');
//1.右邊箭頭點選事件
$('.arrow-right').click(right);
//右箭頭點選事件處理函式
function right() {
index++;
//如果當前是最後一張,此時index=lis.length-1,index++後index=lis.length
// 此時應讓index=0
if (index == lis.length) {
index = 0 ;
}
//顯示對應下標的圖片,讓其他兄弟隱藏
lis.eq(index).fadeIn().siblings().fadeOut();
//給對應下標的小圓點按鈕新增current類名,其他兄弟移除current類名
$('.focus i').eq(index).addClass('current').siblings().removeClass('current');
}
//2.左邊箭頭點選事件
$('.arrow-left').click(function () {
index--;
//如果當前是第一張(index=0),index--後,index<0,此時應顯示最後一張,讓index=lis.length-1
if (index < 0) {
index = lis.length - 1;
}
//顯示對應下標的圖片,讓其他兄弟隱藏
lis.eq(index).fadeIn().siblings().fadeOut();
//給對應下標的小圓點按鈕新增current類名,其他兄弟移除current類名
$('.focus i').eq(index).addClass('current').siblings().removeClass('current');
})
//3.底部圓點按鈕滑鼠移入事件
btns = $('.focus i');
for (var i = 0; i < btns.length; i++) {
//設定index屬性,記錄當前下標
btns.eq(i).attr('index', i);
//給btn註冊滑鼠移入事件
btns.eq(i).mouseenter(fn);
}
//btn的事件處理函式
function fn() {
var index = $(this).attr('index');
lis.eq(index).fadeIn().siblings().fadeOut();
$(this).addClass('current').siblings().removeClass('current');
}
//4.自動輪播
//先執行一次定時器
var timeid = setInterval(function () {
right()
}, 3000)
//滑鼠移出div時,設定定時器,呼叫右邊箭頭的點選事件
$('.slider').mouseleave(function () {
timeid = setInterval(function () {
right()
}, 3000)
})
//滑鼠移入div時,清除定時器
$('.slider').mouseenter(function(){
clearInterval(timeid)
})
})