网站常见的轮播图的实现(引入jQuery库)
1、在网站上常常可以看见自动播放的轮播图,导航下面的轮播图已是屡见不鲜的事了。
比如这种:
又如这种:
2、轮播图功能的设计:
①
设计的轮播图能在每2s自动播放一张图片,从第一张开始播放,播放完最后一张图片后又返回第一张播放,无限重复此过程。
②
点击下面的方块能切换至对应的图片,并且暂停(暂停后不自动播放下一张图片)显示该图片,离开方块时轮播图又从该位置自动播放。
③
点击左右两边的箭头能返回上一张、下一张图片,不暂停显示该图片,紧接着轮播图从该图片自动播放。
3、代码分布实现
html结构(记得引入jQuery库,库文件可从官网下载,也可在本博客底部分享的链接获取【含轮播图实现的全部代码】)
整体一个div,里面包含一个ul【ul下面是li包含5张图片】,然后是一个section【section里面也是ul,放5个小方块】,最后是存放左右两个箭头的div!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>轮廓图实现</title>
<script src="jquery-3.4.1.js"></script> <!--引入jQuery库-->
</head>
<body>
<div id="box">
<ul>
<li><img src="./images/1.jpg"></li>
<li><img src="./images/2.jpg"></li>
<li><img src="./images/3.jpg"></li>
<li><img src="./images/4.png"></li>
<li><img src="./images/5.jpg"></li>
</ul>
<section>
<ul class="num">
<li class="current"></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</section>
<div class="left hide"><</div>
<div class="right hide">></div>
</div>
</body>
</html>
加入css样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>轮廓图实现</title>
<script src="jquery-3.4.1.js"></script> <!--引入jQuery库-->
<style>
ul,li,img{
padding:0px;
margin:0px;
list-style: none;
}
#box{
width:800px;
height:400px;
/* border:1px solid red; */
position: absolute;
top:5%;
left:calc(50% - 400px);
overflow: hidden;
}
#box>ul{
width:4019px;
height:400px;
/* border: 1px solid yellow; */
}
#box>ul>li{
display: inline;
}
#box>ul>li>img{
width:800px;
height:400px;
}
#box>section{
position: absolute;
width:100px;
height:20px;
left:calc(50% - 100px / 2);
bottom: 3.5%;
/* border:1px solid red; */
}
.num>li{
display: inline-block;
margin-right: 2px;
width:13px;
height:13px;
text-align: center;
background-color: #ccc;
cursor: pointer;
}
#box>div{
width:30px;
height:58px;
/* border:1px solid red; */
text-align: center;
line-height: 58px;
font-size: 24px;
background-color: #000;
opacity: 0.5;
color:#ccc;
cursor: pointer;
}
.left{
position: absolute;
left:0px;
top:calc(50% - 58px / 2);
}
.right{
position: absolute;
right: 0px;
top:calc(50% - 58px / 2);
}
.hide{
display: none;
}
.num>.current{
background-color:red;
}
</style>
</head>
<body>
<div id="box">
<ul>
<li><img src="./images/1.jpg"></li>
<li><img src="./images/2.jpg"></li>
<li><img src="./images/3.jpg"></li>
<li><img src="./images/4.png"></li>
<li><img src="./images/5.jpg"></li>
</ul>
<section>
<ul class="num">
<li class="current"></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</section>
<div class="left hide"><</div>
<div class="right hide">></div>
</div>
</body>
</html>
初步实现后:
加入JavaScript代码:
<script>
var i=0;
var timer;
// 开启轮播
function startLunBo(i){
$("#box>ul>li").eq(i).show().siblings("li").hide();
$("#box>section>ul>li").eq(i).addClass("current").siblings().removeClass("current");
}
function autoBo(){
timer = setInterval(function(){
i++;
if(i==5){
i=0;
}
startLunBo(i);
},2000)
}
//页面加载事件
$(function(){
autoBo(); //自动播放
// 鼠标放上去事件
$(".num>li").mouseover(function(){
clearInterval(timer); //停止轮播
i=$(this).index(); //获取当前图片下标索引
startLunBo(i)
})
// 鼠标离开事件
$(".num>li").mouseout(function(){
i=$(this).index(); //获取当前图片下标索引
autoBo(); //开启自动播放
})
$("#box").hover(function(){
$(".hide").css("display","block");
},function(){
$(".hide").css("display","none");
})
// 向左切换图片
$(".left").click(function(){
clearInterval(timer);
i--;
if(i==-1){
i=4;
}
startLunBo(i)
autoBo(); //开启自动播放
})
// 向右切换图片
$(".right").click(function(){
clearInterval(timer);
i++;
if(i==5){
i=0;
}
startLunBo(i)
autoBo(); //开启自动播放
})
})
</script>
4、总体代码实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>轮廓图实现</title>
<script src="jquery-3.4.1.js"></script> <!--引入jQuery库-->
<style>
ul,li,img{
padding:0px;
margin:0px;
list-style: none;
}
#box{
width:800px;
height:400px;
/* border:1px solid red; */
position: absolute;
top:5%;
left:calc(50% - 400px);
overflow: hidden;
}
#box>ul{
width:4019px;
height:400px;
/* border: 1px solid yellow; */
}
#box>ul>li{
display: inline;
}
#box>ul>li>img{
width:800px;
height:400px;
}
#box>section{
position: absolute;
width:100px;
height:20px;
left:calc(50% - 100px / 2);
bottom: 3.5%;
/* border:1px solid red; */
}
.num>li{
display: inline-block;
margin-right: 2px;
width:13px;
height:13px;
text-align: center;
background-color: #ccc;
cursor: pointer;
}
#box>div{
width:30px;
height:58px;
/* border:1px solid red; */
text-align: center;
line-height: 58px;
font-size: 24px;
background-color: #000;
opacity: 0.5;
color:#ccc;
cursor: pointer;
}
.left{
position: absolute;
left:0px;
top:calc(50% - 58px / 2);
}
.right{
position: absolute;
right: 0px;
top:calc(50% - 58px / 2);
}
.hide{
display: none;
}
.num>.current{
background-color:red;
}
</style>
</head>
<body>
<script>
var i=0;
var timer;
// 开启轮播
function startLunBo(i){
$("#box>ul>li").eq(i).show().siblings("li").hide();
$("#box>section>ul>li").eq(i).addClass("current").siblings().removeClass("current");
}
function autoBo(){
timer = setInterval(function(){
i++;
if(i==5){
i=0;
}
startLunBo(i);
},2000)
}
//页面加载事件
$(function(){
autoBo(); //自动播放
// 鼠标放上去事件
$(".num>li").mouseover(function(){
clearInterval(timer); //停止轮播
i=$(this).index(); //获取当前图片下标索引
startLunBo(i)
})
// 鼠标离开事件
$(".num>li").mouseout(function(){
i=$(this).index(); //获取当前图片下标索引
autoBo(); //开启自动播放
})
$("#box").hover(function(){
$(".hide").css("display","block");
},function(){
$(".hide").css("display","none");
})
// 向左切换图片
$(".left").click(function(){
clearInterval(timer);
i--;
if(i==-1){
i=4;
}
startLunBo(i)
autoBo(); //开启自动播放
})
// 向右切换图片
$(".right").click(function(){
clearInterval(timer);
i++;
if(i==5){
i=0;
}
startLunBo(i)
autoBo(); //开启自动播放
})
})
</script>
<div id="box">
<ul>
<li><img src="./images/1.jpg"></li>
<li><img src="./images/2.jpg"></li>
<li><img src="./images/3.jpg"></li>
<li><img src="./images/4.png"></li>
<li><img src="./images/5.jpg"></li>
</ul>
<section>
<ul class="num">
<li class="current"></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</section>
<div class="left hide"><</div>
<div class="right hide">></div>
</div>
</body>
</html>
本博客代码所用的jQuery文件和图片及其源代码:
链接:https://pan.baidu.com/s/1jVPt8eJNFESYv_DtK-etoQ
提取码:ro0p
复制这段内容后打开百度网盘手机App,操作更方便哦