1. 程式人生 > 程式設計 >jQuery實現簡單的輪播圖效果

jQuery實現簡單的輪播圖效果

大家好,今天我和大家分享一下輪播圖的實現,下面是我做的輪播圖效果

jQuery實現簡單的輪播圖效果

首先我們看到,它是由背景圖片、方向圖示和指示器組成。我們發現背景圖片、方向圖示和指示器是層疊在一起的,所以佈局時我們要用絕對定位。我們要實現點選方向圖示時,圖片跟著變換;點選指示器時,圖片跟著變換;不點選時每隔5秒自動播放;不點選時不顯示方向圖示。

結構佈局:用一個div包裹3個div,裡面的3個div分別顯示背景圖片部分、方向圖示部分和指示器部分。

&lFujmZnQqt;!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</tFujmZnQq
itle> <link rel="stylesheet" href=".//lunbotu.css" > </head> <body> <!--整個輪播圖部分--> <div class="carousel"> <!--圖片背景--> <div class="content"> <ul> <li><a href=""><img src=" ./img/dj.jpg" alt="實現簡單的輪播圖效果"></a></li> <li><a href=""><img src=" ./img/ali.jpg" alt="jQuery實現簡單的輪播圖效果"></a></li> <li&ghttp://www.cppcns.com
t;<a href=""><img src=" ./img/al.jpg" alt="jQuery實現簡單的輪播圖效果"></a></li> <li><a href=""><img src=" ./img/hml.jpg" alt="jQuery實現簡單的輪播圖效果"></a></li> <li><a href=""><img src=" ./img/yao.jpg" alt="jQuery實現簡單的輪播圖效果"></a></li> <li><a href=""><img src=" ./img/xia.jpg" alt="jQuery實現簡單的輪播圖效果"></a></li> </ul> </div> <!--左移、右移圖示--> <div class="pos"> <a href="" class=" left"><img src="./img/arrow-left.png" alt="jQuery實現簡單的輪播圖效果"></a> <a href="" class=" right"><img src="./img/arrow-right.png" alt="jQuery實現簡單的輪播圖效果"></a> </div> <!--指示器--> <div class="dot"> <ul> <li class="active"><a href=""></a></li> <li><a href=""></a></li> <li><a href=""></a></li> <li><a href=""></a></li> <li><a href=""></a></li> <li><a href=""></a></li> </ul> </div> </div> <script src="/jquery-3.6.0.js"></script> <script src="js/lunbotu.js"></script> </body> </html>

樣式程式碼:大家可以自己設計自己喜歡的顏色和樣式。注意要用絕對定位就要遵循子絕父相的原則。想讓介面只顯示一張圖片可以用overflow: hidden;把超出部分隱藏,在用定位後可以設定top: 50%;transform: translateY(-50%);垂直居中 display: none;

/*去除標籤自帶的樣式*/
* {
    margin: 0;
    padding: 0;
}
 
ul {
    list-style: none;
}
 
a {
    text-decoration: none;
}
 
img {
    width: 100%;
}
/*設定整個輪播圖的佈局*/
.carousel {
    position: relative;
    margin: 40px auto;
    width: 1000px;
    height: 460px;
    border: 1px solid rgba(0,0.1);
    box-sizing: border-box;
    /*超出部分隱藏*/
    overflow: hidden;
}
/*設定背景圖片的佈局*/
.content {
    position: absolute;
    z-index: 1;
}
/*設定左移、右移圖示和指示器的佈局*/
.pos,.dot {
    position: absolute;
    z-index: 2;
    width: 100%;
}
/*設定左移、右移圖示先垂直居中、不顯示*/
.pos {
    top: 50%;
    transform: translateY(-50%);
    display: none;
}
/*設定左移、右移圖示的背景*/
.pos > a {
    padding: 10px 0;
    border-radius: 15px;
    background: rgba(0,0.5);
}
/*設定左移圖示的位置*/
.left {
    float: left;
}
/*設定右移圖示的位置*/
.right {
    float: right;
}
/*設定指示器顯示的位置*/
.dot {
    bottom: 30pxFujmZnQq;
    text-align: center;
}
/*設定指示器的背景*/
.dot ul {
    display: inline-block;
    padding: 2px;
    background: rgba(0,.2);
    border-radius: 15px;
 
}
/*設定圓點的大小*/
.dot > ul > li {
    float: left;
    margin: 5px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: white;
    cursor: pointer;
}
/*設定顯示當前圖片時指示器指示的位置*/
.active {
    background: rgba(255,255,.6) !important;
}

程式碼:注意開始先把圖片隱藏,預設顯示第一張圖,不然不管你最先點選什麼圖片,它都是第二張圖。顯示下一張圖片時,上一張圖片和指示器的標記要清除

$(function () {
    /*儲存當前圖片的索引*/
    let index = 0;
    let btn = false;
    /*去除a標籤自帶的重新整理*/
    $('a[href=""]').prop('href','script:;');
    /*開始先把圖片隱藏,預設顯示第一張圖*/
    $('.content>ul>li').hide();
    $('.content>ul>li:eq(0)').show();
    // 設定方向箭頭圖示的淡入、淡出
    $('.carousel').hover(function () {
        $('.pos').stop().fadeIn()
    },function () {
        $('.pos').stop().fadeOut()
    })
    // 為左方向圖示繫結點選事件
    $('.left').on('click',function () {
        btn = true;
        clean();
        if (index == 0) {
            index = 5;
        } else {
            --index;
        }
        show();
    })
    // 為右方向圖示繫結點選事件
    $('.right').on('click',function () {
        btn = true;
        clean();
        if (index == 5) {
            index = 0;
        } else {
            ++index;
        }
        show();
    })
    //指示器指示功能(為指示器繫結點選事件)
    $('.dot li').on('click',function () {
        btn = true;
        let now = $(this).index()
        if (now != index) {
            clean();
            index = now;
            show();
        }
    })
    //自動播放功能(定時器)
    setInterval(function () {
        if (!btn) {
            clean();
            if (index == 5) {
                index = 0;
            } else {
                ++index;
            }
            show();
        } else {
            btn = false;
        }
​
    },5000)
​
    //清除上一張圖片和指示器上的指示
    function clean() {
        $(`.content>ul>li:eq(${index})`).stop().fadeOut();
        $(`.dot>ul>li:eq(${index})`).removeClass('active');
    }
    //新增新的圖片和指示器上的指示
    function show() {
        console.log(index);
        $(`.content>ul>li:eq(${index})`).stop().fadeIn();
        console.log($(`.content>ul>li:eq(${index})`))
        $(`.dot>ul>li:eq(${index})`).addClass('active');
​
    }
})

結果:

jQuery實現簡單的輪播圖效果

jQuery實現簡單的輪播圖效果

jQuery實現簡單的輪播圖效果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。