今天给大家分享的是利用jquery实现轮播图的效果,废话不多说咯,直接上代码,当然每行代码会有注释了,这样也便于理解哦~
html样式
css样式
js样式
第一步:先引进jquery文件
<script src="./jquery.js"></script>
第二步:html样式
<div id="banner">
<!-- 图片 -->
<ul id="banner_img">
<li>
<img src="./img/1.jpg" alt="">
</li>
<li>
<img src="./img/2.jpg" alt="">
</li>
<li>
<img src="./img/3.jpg" alt="">
</li>
<li>
<img src="./img/4.jpg" alt="">
</li>
</ul>
<!-- 圆点 -->
<ul id="banner_yuandian">
<li class="active">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<!-- < >箭头指向 -->
<button id="banner_back"><</button>
<button id="banner_next">></button>
</div>
回到顶部
第三步:css样式<style>
*{
margin: 0;
padding: 0;
list-style: none;
}
#banner{
position: relative;
}
/*图片样式 */
#banner #banner_img{
width: 300px;
height: 300px;
border: 2px red solid;
}
#banner #banner_img img{
width: 300px;
height: 300px;
}
#banner #banner_img>li{
display: none;
}
#banner #banner_img :first-child{
display:block;
}
/* 圆点样式 */
#banner_yuandian{
position: absolute;
bottom: 10px;
display: flex;
margin-left: 35px;
}
#banner_yuandian li{
margin-left: 30px;
width: 20px;
height: 20px;
border: 1px red solid;
border-radius: 50%;
text-align: center;
}
#banner_yuandian li:hover{
background: orange;
}
#banner_yuandian .active{
background: orange;
}
/* 箭头样式 */
#banner_back{
width: 30px;
height: 30px;
position: absolute;
margin-top: -150px;
}
#banner_next{
width: 30px;
height: 30px;
position: absolute;
margin-top: -150px;
margin-left: 273px;
}
</style>
回到顶部
第四步:js样式<script>
//设置图片,圆点,箭头共同的下标 从0开始
var index=0;
//封装轮播的函数 第一步
function show(){
//下标每次+1增加
index+=1;
//如果下标大于等于图片的长度数,返回第一张图,即是下标index=0就行
if(index>=$("#banner_img>li").length){
index=0;
}
//让li的每张图片点击时显示自己,其他兄弟隐藏
$("#banner_img>li").eq(index).show(1000).siblings().hide(1000);
//圆点的下标也需要封装一下样式
$("#banner_yuandian>li").eq(index).addClass("active").siblings().removeClass("active");
}
//利用计时器达到轮播效果 第二步
var x=setInterval(show,2000);
//鼠标移动到图片上时清除计时器,移出之后重新加入计时器
$("#banner_img>li").hover(
function(){
clearInterval(x);
},
function(){
x=setInterval(show,2000);
}
)
//圆点设置,点击圆点,切换相应图片 第三步
$("#banner_yuandian>li").on("click",function(){
//点击圆点时的下标取共同下标
var index=$(this).index();//出错的地方index()语法
//点击下标时展现对应的图片,其他兄弟图隐藏
$("#banner_img>li").eq(index).show(1000).siblings().hide(1000);
//点击圆点,添加样式,其他删除
$("#banner_yuandian>li").eq(index).addClass("active").siblings().removeClass("active");
})
//鼠标滑动上去滑动出来要清除计时器和再次设置计时器 第四步
$("#banner_yuandian>li").hover(
function(){
clearInterval(x);
},
function(){
x=setInterval(show,2000);
}
)
//箭头设置 第五步
$("#banner_back").on("click",function(){
//点击一次减去1
index--;
//当下标小于0时,就返回第一张图
if(index<0){
index=0;
}
//点击下标时展现对应的图片,其他兄弟图隐藏
$("#banner_img>li").eq(index).show(1000).siblings().hide(1000);
//点击圆点,添加样式,其他删除
$("#banner_yuandian>li").eq(index).addClass("active").siblings().removeClass("active");
})
//下一张 可以直接调用
$("#banner_next").on("click",function(){
show();
})
//点击button按钮再次清除计时器和添加计时器
$("button").hover(
function(){
clearInterval(x);
},
function(){
x=setInterval(show,2000);
}
)
回到顶部