<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
#container {
width: 750px;
height: 300px;
margin: 50px auto;
border: 1px solid #000;
position: relative;
overflow: hidden;
}
.banner {
width: 10000px;
overflow: hidden;
position: relative;
display: flex;
}
.left,
.right {
padding: 3px 5px;
font-size: 36px;
color: white;
background-color: black;
opacity: 0.3;
cursor: pointer;
position: absolute;
top: 50%;
transform: translateY(-50%);
}
.right {
right: 0;
}
#bot-nav {
position: absolute;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
display: flex;
}
li {
cursor: pointer;
margin-right: 10px;
border-radius: 50%;
border: 5px solid white;
}
.on {
border-color: red;
}
</style>
</head>
<body>
<div id="container">
<div class="banner">
<img src="./images/1.png" alt="">
<img src="./images/2.png" alt="">
<img src="./images/3.png" alt="">
<img src="./images/4.png" alt="">
<img src="./images/5.png" alt="">
<img src="./images/6.png" alt="">
<!-- 猫腻图 -->
<img src="./images/1.png" alt="">
</div>
<!-- 左右按钮 -->
<div class="left"><</div>
<div class="right">></div>
<!-- 底部导航 -->
<ul id="bot-nav">
<li class="on"></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<script src="./js/jquery-3.5.0.js"></script>
<script>
var imgs = $("img").length;
var num = 0;
var timer = setInterval(slide, 1000);
function slide() {
num++;
$(".banner").animate({
left: -num * 750
}, function () {
if (num === imgs - 1) {
num = 0;
$(".banner").css({ left: 0 })
}
$("li").eq(num).addClass("on").siblings().removeClass("on")
})
}
$("#container").mouseenter(function () {
clearInterval(timer)
$(".left").css({opacity:0.8});
$(".right").css({opacity:0.8});
})
$("#container").mouseleave(function () {
timer = setInterval(slide, 1000);
$(".left").css({opacity:0.3});
$(".right").css({opacity:0.3});
})
$(".left").click(function () {
if ($(".banner").is(":animated")) {
return;
}
num--;
if (num < 0) {
num = imgs - 2;
$(".banner").css({ left: -(num + 1) * 750 });
}
$(".banner").animate({ left: -num * 750 });
$("li").eq(num).addClass("on").siblings().removeClass("on");
})
$(".right").click(function(){
if($(".banner").is(":animated")){
return;
}
slide()
})
$("li").click(function(){
if($(".banner").is(":animated")){
return;
}
num = $(this).index();
$("li").eq(num).addClass("on").siblings().removeClass("on");
$(".banner").animate({left:-num * 750});
})
</script>
效果图
存在一个问题 会出现 白屏的效果 还未找到原因