本文介绍如何使用原生JavaScript实现图片轮播效果,通过定义当前页码和上一页页码变量,判断翻页方向并执行相应的动画效果。
原生JS实现图片轮播效果
以往在页面开发中遇到图片轮播需求时,通常的做法是直接引用现成的插件,然后手动修改图片路径以适配自己的图片资源,这样虽然能解决问题,但作者认为这种方式无法有效提升前端技术水平。因此,作者尝试独立编写了一个图片轮播的小demo,使用的是jquery,作者自谦为前端小白,希望各位前端大神看了之后,能给予批评指正。
实现思路如下:定义两个变量,一个用来保存当前页码$index,一个用来保存上一页的页码$exdex,首先判断$index和$exdex的大小,如果$index大于$exdex,说明是朝左翻页,反之,就是朝右翻页。如果是朝左翻页,就把当前页朝左偏移100%的宽度,让下一页同样朝左偏移100%宽度。以下是代码部分:
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
.banner{
width:300px;
height:250px;
position: relative;
z-index: 100;
background: skyblue;
margin:100px auto;
overflow:hidden ;
}
.banner .first{
left:0;
}
.banner a{
width: 100%;
height: 100%;
position: absolute;
display:block;
top:0;
left:100%;
}
.banner a img{
width: 100%;
height: 100%;
}
.banner .pre{
position: absolute;
left:0;
top:120px;
background: gray;
width:30px;
height:30px;
border-radius: 30px;
line-height: 30px;
text-align: center;
opacity: 0.4;
z-index: 1000;
cursor: pointer;
}
.banner .next{
position: absolute;
right:0;
top:120px;
background: gray;
width:30px;
height:30px;
border-radius: 30px;
line-height: 30px;
text-align: center;
opacity: 0.4;
z-index: 1000;
cursor: pointer;
}
.choose{
position: absolute;
width:100px;
height:20px;
bottom:10px;
left:90px;
z-index: 1000;
}
.choose span{
display: block;
float: left;
margin-left:15px;
width:10px;
height:10px;
border-radius: 10px;
background: blue;
cursor: pointer;
}
.choose .red{
background: red;
}
</style>
</head>
<body>
<div class="banner">
<span class="pre"><=</span>
<span class="next">=></span>
<a href="#" class="first"><img src="./1.jpg" alt=""/></a>
<a href="#"><img src="./2.jpg" alt=""/></a>
<a href="#"><img src="./3.jpg" alt=""/></a>
<a href="#"><img src="./4.jpg" alt=""/></a>
<div class="choose">
<span class="red"></span>
<span></span>
<span></span>
<span></span>
</div>
</div>
</body>
<script src="./jquery.min.js"></script>
<script>
var $index = 0;
var $exdex = 0;
$('.choose span').mouseover(function(){
$index = $(this).index();
$('.choose span').eq($index).addClass("red").siblings().removeClass("red");
if($index > $exdex) {
next();
} else {
pre();
}
return $exdex = $index;
});
function next() {
$('.banner a').eq($index).stop(true,true).css('left',"100%").animate({"left":0});
$('.banner a').eq($exdex).stop(true,true).css('left',"0").animate({"left":"-100%"});
}
function pre() {
$('.banner a').eq($index).stop(true,true).css('left',"-100%").animate({"left":"0"});
$('.banner a').eq($exdex).stop(true,true).css('left',"0").animate({"left":"100%"});
}
</script>
</html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。