这次给大家带来js轻松实现轮播图,js轻松实现轮播图的注意事项有哪些,下面就是实战案例,一起来看一下。
思路:
1、首先要有个盛放图片的容器,设置为单幅图片的宽高,且overflow:hidden,这样保证每次可以只显示一个图片
2、container内有个放图片的list进行position的定位 ,其中的图片采用float的方式,同时当图片进行轮播时,改变list的left值使得其显示的图片发生变化。
3、图片的轮播使用定时器,通过定时器改变list的left值是的图片循环展示
4、当鼠标滑动到图片上时,清除定时器,图片停止轮播,当鼠标移出时继续进行轮播
5、图片上有一组小圆点用于与当前显示的图片相对应,同时可以通过点击的方式查看对应的图片
6、图片可以通过点击进行左右滑动显示
代码:
<!doctype html>
<htmllang="en">
<head>
<metacharset="utf-8">
<title>轮播图</title>
<styletype="text/css">
.container{
margin:0 auto;
width:600px;
height:400px;
position: relative;
overflow: hidden;
border:4px solid gray;
box-shadow: 3px 3px 5px gray;
border-radius:10px;
}
.list{
width:4200px;
height:400px;
position: absolute;
top:0px;
}
img{
float:left;
width:600px;
height:400px;
}
.dots{
position: absolute;
left:40%;
bottom:30px;
list-style: none;
}
.dots li{
float:left;
width:8px;
height:8px;
border-radius: 50%;
background: gray;
margin-left:5px
}
.dots .active{
background: white;
}
.pre,.next{
position: absolute;
top:40%;
font-size:40px;
color:white;
text-align:center;
background: rgba(128,128,128,0.5);
/* display:none;*/
}
.pre{
left:30px;
}
.next{
right:30px;
}
</style>
</head>
<body>
<pclass="container">
<pclass="list"style=" left:-600px;">
<imgsrc="img/5.jpg">
<imgsrc="img/1.jpg">
<imgsrc="img/2.jpg">
<imgsrc="img/3.jpg">
<imgsrc="img/4.jpg">
<imgsrc="img/5.jpg">
<imgsrc="img/1.jpg">
</p>
<ulclass="dots">
<liindex=1class="active dot"></li>
<liindex=2class="dot"></li>
<liindex=3class="dot"></li>
<liindex=4class="dot"></li>
<liindex=5class="dot"></li>
</ul>
<pclass="pre"><</p>
<pclass="next">></p>
</p>
<scripttype="text/javascript">
var index=1,timer;
function init(){
eventbind();
autoplay();
}
init();
function autoplay(){
timer =setinterval(function () {
animation(-600);
dotindex(true);
},1000)
}
function stopautoplay() {
clearinterval(timer);
}
function dotindex(add){
if(add){
index++;
}
else{
index--;
}
if(index>5){
index = 1;
}
if(index<1){
index=5;
}
dotactive();
}
function dotactive() {
vardots=document.getelementsbyclassname("dot");
varlen=dots.length;
for(vari=0;i<len ;i++){
dots[i].classname="dot";
}
for(vari=0;i<len;i++){
/*此处可以不用parseint,当不用全等时*/
if(index === parseint(dots[i].getattribute("index"))){
dots[i].classname="dot active";
}
}
}
function eventbind(){
/*点的点击事件*/
vardots=document.getelementsbyclassname("dot");
varlen=dots.length;
for(vari=0;i<len;i++){
(function(j){
dots[j].onclick=function(e){
varind=parseint(dots[j].getattribute("index"));
animation((index - ind)*(-600));/*显示点击的图片*/
index= ind;
dotactive();
}
})(i)
}
/*容器的hover事件*/
varcon=document.getelementsbyclassname("container")[0];
/*鼠标移动到容器上时,停止制动滑动,离开时继续滚动*/
con.onmouseover=function(e) {
stopautoplay();
}
con.onmouseout=function(e){
autoplay();
}
/*箭头事件的绑定*/
varpre=document.getelementsbyclassname("pre")[0];
varnext=document.getelementsbyclassname("next")[0];
pre.onclick=function(e) {
dotindex(false);
animation(600);
}
next.onclick=function(e) {
dotindex(true);
animation(-600);
}
}
function animation(offset){
varlists=document.getelementsbyclassname("list")[0];
varleft=parseint(lists.style.left.slice(0,lists.style.left.indexof("p"))) + offset;
if(left<-3000){
lists.style.left="-600px";
}
else if(left>-600){
lists.style.left = "-3000px";
}
else{
lists.style.left = left+"px";
}
}
</script>
</body>
</html>
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
js正则快速记忆方法
vue0.1代码怎么添加到vue2.0使用
js实现棋盘覆盖
以上就是js轻松实现轮播图的详细内容。