jQuery實現簡單的輪播圖效果
阿新 • • 發佈:2021-09-14
大家好,今天我和大家分享一下輪播圖的實現,下面是我做的輪播圖效果
首先我們看到,它是由背景圖片、方向圖示和指示器組成。我們發現背景圖片、方向圖示和指示器是層疊在一起的,所以佈局時我們要用絕對定位。我們要實現點選方向圖示時,圖片跟著變換;點選指示器時,圖片跟著變換;不點選時每隔5秒自動播放;不點選時不顯示方向圖示。
結構佈局:用一個div包裹3個div,裡面的3個div分別顯示背景圖片部分、方向圖示部分和指示器部分。
&lFujmZnQqt;!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</tFujmZnQqitle> <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.comt;<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'); } })
結果:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。