温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JS实现轮播图效果的方法有哪些

发布时间:2021-11-08 09:04:44 来源:亿速云 阅读:205 作者:iii 栏目:开发技术

这篇文章主要讲解了“JS实现轮播图效果的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS实现轮播图效果的方法有哪些”吧!

Js实现轮播图01

实现思路

这可能是轮播图最简单点的实现之一,通过更改图片的src来实现该效果,首先需要将图片命名格式统一比如pic01.jpg,pic02.jpg…,再通过js使用定时器去改变img标签里面的src图片链接的名字来实现切换效果。代码如下:

实现效果

JS实现轮播图效果的方法有哪些

<!DOCTYPE html> <html>  <head>   <meta charset="utf-8">   <title>轮播图实现01</title>   <style type="text/css">    .lunbo{     width: 900px;     height: 400px;     margin:100px auto;    }    .lunbo img{     width: 100%;     height:100%;    }   </style>  </head>  <body>   <!--轮播图模块 -->   <div class="lunbo">    <img id="lunbo_img" src="./pic/img3.jpeg" >   </div>   <!-- Js代码 -->     <script>       var index = 1;         function lunbo(){             index ++ ;             //判断index是否大于3             if(index > 3){                 index = 1;             }             //获取img对象             var img = document.getElementById("lunbo_img");             img.src = "./pic/img"+index+".jpeg";         }         //2.定义定时器         setInterval(lunbo,2000);         /*切记定时器里调用lunbo方法不能加(),setInterval(lunbo,2000);如果加()会执行lunbo()方法,而导致定时器没用。  </script>  </body> </html>

Js实现轮播图02

实现思路

这可能是轮播图最简单点的实现之一,通过改变background的图片链接来实现该效果,首先需要将图片命名格式统一比如pic01.jpg,pic02.jpg…,再通过js使用定时器去改变background属性里面的url()图片链接的名字来实现切换效果。代码如下:

实现效果

JS实现轮播图效果的方法有哪些

<!DOCTYPE html> <html>  <head>   <meta charset="utf-8">   <title>轮播图实现02</title>   <style>    body{     margin: 0;     padding: 0;    }    .lunbo{     width:100%;     height:720px;     background-image: url(pic/img1.jpeg);/*背景图片*/     background-size:100% 100%;     }   </style>  </head>  <body>   <div class="lunbo">       </div>   <script type="text/javascript">     var index = 1;    function lunbo(){     index ++ ;     //判断number是否大于3     if(index > 3){      index = 1;     }     //获取img对象   var img = document.getElementsByClassName("lunbo")[0];   img.style.background = "url(pic/img"+index+".jpeg)";   img.style.backgroundSize="100% 100%";     }    //2.定义定时器    setInterval(lunbo,3000);   </script>  </body> </html>

Js实现轮播图03

本轮播图的实现,首先通过CSS代码将全部存放图片的li标签通过opacity属性设置为0来隐藏不显示, 通过js代码使用定时器不断调用类active突出显示li标签,同时隐藏兄弟li标签,再通过index++来实现切换循环显示的效果,当点击两边的按钮时,调用index++所在的方法实现切换的效果,没有复杂的算法,一点点基础一看代码就会学会,请大家参考。

实现效果

JS实现轮播图效果的方法有哪些

HTML代码

<!DOCTYPE html> <html>  <head>   <meta charset="utf-8">   <meta name="viewport" content="width=device-width,initial-scale=1,   minimum-scale=1,maximum-scale=1,user-scalable=no" />   <!--引入CSS代码-->   <link rel="stylesheet" type="text/css" href="./css/index.css" />   <!--引入Js代码-->   <script src="./js/index.js"></script>   <title>Js实现轮播图</title>  </head>  <body>   <div class="lunbo">    <div class="content">    <ul id="item">     <li class="item">      <a href="#" ><img src="img/pic1.jpg" ></a>     </li>     <li class="item">      <a href="#" ><img src="img/pic2.jpg" ></a>     </li>     <li class="item">      <a href="#" ><img src="img/pic3.jpg" ></a>     </li>     <li class="item">      <a href="#" ><img src="img/pic4.jpg" ></a>     </li>     <li class="item">      <a href="#" ><img src="img/pic5.jpg" ></a>     </li>    </ul>    <div id="btn-left"><</div>    <div id="btn-right">></div>    <ul id="circle">          <li class="circle"></li>     <li class="circle"></li>     <li class="circle"></li>     <li class="circle"></li>     <li class="circle"></li>    </ul>    </div>   </div>  </body> </html>

CSS代码

*{  margin: 0;  padding: 0; } a{  list-style: none; } li{  list-style: none; } .lunbo{  width: 100%; } .content{  width: 800px;  height: 300px;  margin: 20px auto;  position: relative; } #item{  width: 100%;  height: 100%;   } .item{  position: absolute;  opacity: 0;  transition: all 1s;   } .item.active{  opacity:1; } img{  width: 100%; } #btn-left{  width: 30px;  height: 69px;  font-size: 30px;  color: white;  background-color:rgba(0,0,0,0.4);  line-height: 69px;  padding-left:5px;  z-index: 10;/*始终显示在图片的上层*/  position: absolute;  left: 0;  top: 50%;  transform: translateY(-60%);/*使按钮向上偏移居中对齐*/  cursor: pointer;  opacity: 0;/*平时隐藏*/ } .lunbo:hover #btn-left{  /*鼠标滑入,显示图标*/  opacity: 1; } #btn-right{  width: 26px;  height: 69px;  font-size: 30px;  color: white;  background-color:rgba(0,0,0,0.4);  line-height: 69px;  padding-left: 5px;  z-index: 10;  position: absolute;  right: 0;  top: 50%;  cursor: pointer;  opacity: 0;  transform: translateY(-60%); } .lunbo:hover #btn-right{  opacity: 1; } #circle{  height: 20px;  display: flex;  position: absolute;  bottom: 35px;  right: 25px; } .circle{  width: 10px;  height: 10px;  border-radius: 10px;  border: 2px solid white;  background: rgba(0,0,0,0.4);  cursor: pointer;  margin: 5px; } .white{  background-color: #FFFFFF; }

JS代码

window.onload=function(){ var items=document.getElementsByClassName("item"); var circles=document.getElementsByClassName("circle"); var leftBtn=document.getElementById("btn-left"); var rightBtn=document.getElementById("btn-right"); var content=document.querySelector('.content'); var index=0; var timer=null; //清除class var clearclass=function(){  for(let i=0;i<items.length;i++){   items[i].className="item";   circles[i].className="circle";   circles[i].setAttribute("num",i);  } } /*只显示一个class*/ function move(){  clearclass();  items[index].className="item active";  circles[index].className="circle white"; } //点击右边按钮切换下一张图片 rightBtn.onclick=function(){  if(index<items.length-1){   index++;  }  else{   index=0;  }  move(); } //点击左边按钮切换上一张图片 leftBtn.onclick=function(){  if(index<items.length){   index--;  }  else{   index=items.length-1;  }  move(); } //开始定时器,点击右边按钮,实现轮播 timer=setInterval(function(){  rightBtn.onclick(); },1500) //点击圆点时,跳转到对应图片 for(var i=0;i<circles.length;i++){  circles[i].addEventListener("click",function(){   var point_index=this.getAttribute("num");   index=point_index;   move();  }) } //鼠标移入清除定时器,并开启一个三秒的定时器,使慢慢转动 content.onmouseover=function(){  clearInterval(timer);   timer=setInterval(function(){    rightBtn.onclick();   },3000) } //鼠标移出又开启定时器 content.onmouseleave=function(){  clearInterval(timer);  timer=setInterval(function(){   rightBtn.onclick();  },1500) } }

感谢各位的阅读,以上就是“JS实现轮播图效果的方法有哪些”的内容了,经过本文的学习后,相信大家对JS实现轮播图效果的方法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

js
AI