本编是jquery无缝轮播图讲解
效果
html代码
<!--banner-position-->
<section class="bannerPosition banner main">
<h1 class="size_3">bannerPosition</h1>
<div class="list flex">
<!--无缝轮播图最重要的第一个为最后一个,最后一个为第一个-->
<div class="size_3 flex-center">3</div>
<div class="size_3 flex-center">1</div>
<div class="size_3 flex-center">2</div>
<div class="size_3 flex-center">3</div>
<div class="size_3 flex-center">1</div>
</div>
<!--按钮-->
<div class="banner-btn">
<div class="banner-prev">
<i class="uil uil-angle-left-b"></i>
</div>
<div class="banner-next">
<i class="uil uil-angle-right-b"></i>
</div>
</div>
<!--小圆点-->
<div class="banner-dot flex">
<span class="active"></span>
<span></span>
<span></span>
</div>
</section>
css代码
.main {
display: flex;
justify-content: center;
width: 100%;
}
.banner {
position: relative;
height: 800px;
overflow: hidden;
}
.banner h1 {
position: absolute;
top: 20px;
color: #fff;
z-index: 9;
}
.banner .list {
osition: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.banner .list div {
background: #7059e6;
flex: 0 0 100%;
color: #Fff;
}
.banner:hover .banner-btn {
opacity: 1;
}
.banner-btn {
transition: .5s;
opacity: 0;
}
.banner-btn > div {
position: absolute;
top: 50%;
transform: translateY(-50%);
z-index: 999;
}
.banner-btn > div i {
color: #fff;
font-size: 3rem;
cursor: pointer;
}
.banner-prev {
left: 5%;
}
.banner-next {
right: 5%;
}
.banner-dot {
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: 10%;
z-index: 99;
gap: 15px;
border-radius: 10px;
}
.banner-dot .active {
background: #333;
}
.banner-dot span {
position: relative;
display: block;
width: 20px;
height: 20px;
border-radius: 10px;
background-color: #Fff;
cursor: pointer;
}
jquery代码
let timers = null
// banner (左右轮播图)
let bannerPosition_size = $('.bannerPosition .list div').length // 获取个数
let bannerPosition_width = $('.bannerPosition .list div').outerWidth() //获取宽度
let index = 1
$('.bannerPosition .list').css({
left: -bannerPosition_width
})
// 自动轮播
timers = setInterval(() => {
index++
getBannerScroll()
}, 5000)
// 鼠标移入取消定时器
$('.banner').mouseenter(function () {
clearInterval(timers)
// 鼠标移出开启定时器
}).mouseleave(function () {
timers = setInterval(() => {
index++
getBannerScroll()
}, 5000)
})
// 右按钮事件
$('.bannerPosition .banner-next').click(function () {
index++
getBannerScroll()
})
// 左按钮
$('.bannerPosition .banner-prev').click(function () {
index--
getBannerScroll()
})
// 小圆点
$('.banner-dot span').click(function () {
index = $(this).index() + 1
getBannerScroll()
})
function getBannerScroll() {
$('.bannerPosition .list').animate({
left: -index * bannerPosition_width
})
if (index >= bannerPosition_size - 1) {
$('.bannerPosition .list').animate({
left: -bannerPosition_width
}, 0)
index = 1
}
if (index < 1) {
$('.bannerPosition .list').animate({
left: -bannerPosition_width * (bannerPosition_size - 2)
}, 0)
index = (bannerPosition_size - 2)
}
$('.banner-dot span').eq(index - 1).addClass('active').siblings().removeClass('active')
}