- 定义了
.wrapper
类,用于设置整个轮播图容器的样式,包括宽度、高度和边框等。- 图片使用绝对定位,通过设置
position: absolute
和left: 0; top: 0;
确保图片叠加在一起,并且只显示第一张图片。- 小圆点使用绝对定位,通过设置
position: absolute
、left: 175px;
和bottom: 10px;
确保小圆点居中显示在底部位置。- 左右箭头使用绝对定位,通过设置
position: absolute
和top: 35%;
确保箭头垂直居中显示。.active
类用于设置当前活动图片对应的小圆点的背景颜色。
.wrapper {
width: 500px;
height: 450px;
border: 1px solid red;
position: relative;
}
/* 5张图片叠加到一块 */
.wrapper img {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
display: none;
}
.wrapper img:nth-of-type(1) {
display: block;
}
/* 小圆点 */
.btn {
width: 150px;
display: flex;
justify-content: space-around;
position: absolute;
left: 175px;
bottom: 10px;
z-index: 100
}
.btn span {
display: block;
width: 15px;
height: 15px;
border: 3px solid white;
border-radius: 50%;
}
/* 左右箭头 */
.wrapper a {
text-decoration: none;
font-size: 50px;
color: red;
position: absolute;
top: 35%;
}
.wrapper a:nth-of-type(1) {
left: 10px;
}
.wrapper a:nth-of-type(2) {
right: 10px;
}
.active {
background-color: red;
}
- 在容器内,使用
<img>
标签添加了五张图片,并给每张图片添加了不同地址的src
属性。- 使用
<span>
标签创建了五个小圆点作为图片导航指示器。- 使用
<a>
标签创建了两个箭头,用于切换上一张和下一张图片。
<div class="wrapper">
<div class="contain">
<img src="./img/063E06CD3FE5E7B2ABCF302ADE948464.jpg" alt="">
<img src="./img/0F16C4EA63793241C0036F5F8343C24C.jpg" alt="">
<img src="./img/13100EF368FB52266EA2158787F04145.jpg" alt="">
<img src="./img/2FF8451CCDD6529E0B0FCB1090F2E03F.jpg" alt="">
<img src="./img/2172B6BEA7D1DD84749967566E307170.jpg" alt="">
</div>
<div class="btn">
<span class="active"></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
<a href="javascript:void(0);"><</a>
<a href="javascript:void(0);">></a>
</div>
- 定义了一个变量
index
用于记录当前显示的图片索引,默认为0。- 给左箭头
<a>
添加点击事件处理函数,调用prev_pic()
函数切换到上一张图片。- 给右箭头
<a>
添加点击事件处理函数,调用next_pic()
函数切换到下一张图片。- 给容器
.wrapper
添加鼠标悬停和离开事件处理函数,实现鼠标悬停时停止轮播,离开时重新自动轮播。- 定义了
next_pic()
函数用于切换到下一张图片,通过增加index
变量的值来控制当前显示的图片索引,并调用addStyle()
函数更新样式。- 定义了
prev_pic()
函数用于切换到上一张图片,通过减少index
变量的值来控制当前显示的图片索引,并调用addStyle()
函数更新样式。- 定义了
addStyle()
函数用于控制图片的显示和隐藏以及小圆点的样式,使用 jQuery 的fadeIn()
和fadeOut()
方法来实现淡入淡出效果,并通过添加或移除.active
类来设置当前活动小圆点的背景颜色。- 定义了
autoplay()
函数用于自动轮播,通过设置定时器每隔一段时间调用next_pic()
函数实现自动切换。- 在页面加载完成后,调用
autoplay()
函数开始自动轮播。
var index=0;
// 点击上一张
$("a:first").click(function(){
prev_pic();
})
// 点击下一张
$("a:last").click(function(){
next_pic();
})
// 悬浮停止
$(".wrapper").mouseover(function(){
clearInterval(id);
});
$(".wrapper").mouseout(function(){
autoplay();
})
// 下一张
function next_pic(){
index++;
if(index>4){
index=0;
}
addStyle();
}
// 上一张
function prev_pic(){
index--;
if(index<0){
index=4;
}
addStyle();
}
// 控制图片显示隐藏,小圆点背景色
function addStyle(){
$("img").eq(index).fadeIn();
$("img").eq(index).siblings().fadeOut();
$("span").eq(index).addClass("active");
$("span").eq(index).siblings().removeClass("active");
}
// 自动轮播
var id;
autoplay();
function autoplay(){
id=setInterval(function(){
next_pic();
},1000)
}
效果如下: