原生js滑动轮播封装
本文实例为大家分享了原生js滑动轮播的具体代码,供大家参考,具体内容如下
封装滑动轮播
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>cmm无缝轮播</title>
<style type="text/css">
*{margin: 0 ;padding : 0}
#container{
height: 470px;
width: 590px;
border: 1px solid red;
position: relative;
margin: 50px auto;
}
#box{
position: absolute;
list-style: none;
}
#box li{
float: left;
}
#pages {
width: 100%;
height: 30px;
background: #ccc;
position: absolute;
bottom: 0;
}
#pages i {
width: 20px;
height: 20px;
display: inline-block;
border-radius: 10px;
background: #fff;
margin: 5px;
}
#pages i.current {
background: #f00;
}
#prev, #next {
width: 45px;
height: 100px;
position: absolute;
top: 0;
bottom: 0;
margin: auto;
background: #ccc;
line-height: 100px;
text-align: center;
font-size: 40px;
color: #fff;
}
#next {
right: 0;
}
</style>
</head>
<body>
<div id="container">
<ul id="box">
<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.jpg"></li>
</ul>
<div id="pages"></div>
<div id="prev"><</div>
<div id="next">></div>
</div>
<script src="js/tools.js"></script>
<script>
var lis = $("li"),
length = lis.length,
liWidth = lis[0].clientWidth,
currentIndex = 0,
nextIndex = 1,
timer = null,
move = null,
circls = null,
durations = 2000;
// 动态设置ul宽度
$("#box").style.width = length * liWidth + "px";
// 动态设置小圆点
var html = "";
for(var i = 0 ;i <length ;i++){
html += "<i></i>"
}
$("#pages").innerHTML= html;
circls = $("i");
circls[0].className = "current";
// 切换动画
move = function(){
// 设置box运动终点值
var _left = -1 * nextIndex * liWidth;
// 开始动画
animate($("#box"),{left:_left},200)
// 修改小圆点样式
circls[currentIndex].className = "";
circls[nextIndex].className = "current";
// 修改索引
currentIndex = nextIndex;
nextIndex++;
if(nextIndex >= length){
nextIndex = 0;
}
}
// 自动动画
timer = setInterval(move, durations)
// container中鼠标移入,移出事件
on($("#container"),"mouseenter",function(){
clearInterval(timer);
})
on($("#container"),"mouseleaver",function(){
timer = setInterval(move, durations);
})
// 点击小圆点,切换至对应的图片
on($("#pages"),"click",function(e){
e = e || event;
var src = e.target || src.Element;
if(src.nodeName === "I"){
var _index = Array.from(circls).indexOf(src);
if(_index === currentIndex){
return
}
nextIndex = _index;
move();
}
})
// 点击翻页进行切换
on($("#prev"),"click",function(){
nextIndex = currentIndex - 1;
if(nextIndex < 0){
nextIndex = length;
}
move();
})
on($("#next"),"click",function(){
move();
})
</script>
</body>
</html>
更多关于轮播图效果的专题,请点击下方链接查看学习
javascript图片轮播效果汇总
jquery图片轮播效果汇总
Bootstrap轮播特效汇总
以上是 原生js滑动轮播封装 的全部内容, 来源链接: utcz.com/z/332150.html