jQuery实现简单的轮播图效果_jquery

这篇文章主要为大家详细介绍了jQuery实现简单的轮播图效果,实现自动播放,能手动切换,文中示例代码

jQuery实现简单的轮播图效果_jquery

这篇文章主要为大家详细介绍了jQuery实现简单的轮播图效果,实现自动播放,能手动切换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

大家好,今天我和大家分享一下轮播图的实现,下面是我做的轮播图效果

首先我们看到,它是由背景图片、方向图标和指示器组成。我们发现背景图片、方向图标和指示器是层叠在一起的,所以布局时我们要用绝对定位。我们要实现点击方向图标时,图片跟着变换;点击指示器时,图片跟着变换;不点击时每隔5秒自动播放;不点击时不显示方向图标。

结构布局:用一个div包裹3个div,里面的3个div分别显示背景图片部分、方向图标部分和指示器部分。

<!DOCTYPE html>
<html lang=\”en\”>
<head>
<meta charset=\”UTF-8\”>
<title>Title</title>
<link rel=\”stylesheet\” href=\”./css/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=\”\”></a></li>
<li><a href=\”\”><img src=\” ./img/al.jpg\” alt=\”\”></a></li>
<li><a href=\”\”><img src=\” ./img/hml.jpg\” alt=\”\”></a></li>
<li><a href=\”\”><img src=\” ./img/yao.jpg\” alt=\”\”></a></li>
<li><a href=\”\”><img src=\” ./img/xia.jpg\” alt=\”\”></a></li>
</ul>
</div>
<!–左移、右移图标–>
<div class=\”pos\”>
<a href=\”\” class=\” left\”><img src=\”./img/arrow-left.png\” alt=\”\”></a>
<a href=\”\” class=\” right\”><img src=\”./img/arrow-right.png\” alt=\”\”></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=\”js/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, 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, 0, 0.5);
}
/*设置左移图标的位置*/
.left {
float: left;
}
/*设置右移图标的位置*/
.right {
float: right;
}
/*设置指示器显示的位置*/
.dot {
bottom: 30px;
text-align: center;
}
/*设置指示器的背景*/
.dot ul {
display: inline-block;
padding: 2px;
background: rgba(0, 0, 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, 255, .6) !important;
}

JavaScript代码:注意开始先把图片隐藏,默认显示第一张图,不然不管你最先点击什么图片,它都是第二张图。显示下一张图片时,上一张图片和指示器的标记要清除

$(function () {
/*保存当前图片的索引*/
let index = 0;
let btn = false;
/*去除a标签自带的刷新*/
$(\’a[href=\”\”]\’).prop(\’href\’, \’javascript:;\’);
/*开始先把图片隐藏,默认显示第一张图*/
$(\’.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\’);

}
})

结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持3399IT网。

本文为网络共享文章,如有侵权请联系邮箱485837881@qq.com

为您推荐

返回顶部