0


JS实现轮播图的三种简单方法。

Js实现轮播图01

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

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>轮播图实现01</title>
  6. <style type="text/css">
  7. .lunbo{
  8. width: 900px;
  9. height: 400px;
  10. margin:100px auto;
  11. }
  12. .lunbo img{
  13. width: 100%;
  14. height:100%;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <!--轮播图模块 -->
  20. <div class="lunbo">
  21. <img id="lunbo_img" src="./pic/img3.jpeg" >
  22. </div>
  23. <!-- Js代码 -->
  24. <script>
  25. var index = 1;
  26. function lunbo(){
  27. index ++ ;
  28. //判断index是否大于3
  29. if(index > 3){
  30. index = 1;
  31. }
  32. //获取img对象
  33. var img = document.getElementById("lunbo_img");
  34. img.src = "./pic/img"+index+".jpeg";
  35. }
  36. //2.定义定时器
  37. setInterval(lunbo,2000);
  38. /*切记定时器里调用lunbo方法不能加(),setInterval(lunbo,2000);如果加()会执行lunbo()方法,而导致定时器没用。
  39. </script>
  40. </body>
  41. </html>

Js实现轮播图02

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

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>轮播图实现02</title>
  6. <style>
  7. body{
  8. margin: 0;
  9. padding: 0;
  10. }
  11. .lunbo{
  12. width:100%;
  13. height:720px;
  14. background-image: url(pic/img1.jpeg);/*背景图片*/
  15. background-size:100% 100%;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <div class="lunbo">
  21. </div>
  22. <script type="text/javascript">
  23. var index = 1;
  24. function lunbo(){
  25. index ++ ;
  26. //判断number是否大于3
  27. if(index > 3){
  28. index = 1;
  29. }
  30. //获取img对象
  31. var img = document.getElementsByClassName("lunbo")[0];
  32. img.style.background = "url(pic/img"+index+".jpeg)";
  33. img.style.backgroundSize="100% 100%";
  34. }
  35. //2.定义定时器
  36. setInterval(lunbo,3000);
  37. </script>
  38. </body>
  39. </html>

Js实现轮播图03

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

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,
  6. minimum-scale=1,maximum-scale=1,user-scalable=no" />
  7. <!--引入CSS代码-->
  8. <link rel="stylesheet" type="text/css" href="./css/index.css"/>
  9. <!--引入Js代码-->
  10. <script src="./js/index.js"></script>
  11. <title>Js实现轮播图</title>
  12. </head>
  13. <body>
  14. <div class="lunbo">
  15. <div class="content">
  16. <ul id="item">
  17. <li class="item">
  18. <a href="#"><img src="img/pic1.jpg" ></a>
  19. </li>
  20. <li class="item">
  21. <a href="#"><img src="img/pic2.jpg" ></a>
  22. </li>
  23. <li class="item">
  24. <a href="#"><img src="img/pic3.jpg" ></a>
  25. </li>
  26. <li class="item">
  27. <a href="#"><img src="img/pic4.jpg" ></a>
  28. </li>
  29. <li class="item">
  30. <a href="#"><img src="img/pic5.jpg" ></a>
  31. </li>
  32. </ul>
  33. <div id="btn-left"><</div>
  34. <div id="btn-right">></div>
  35. <ul id="circle">
  36. <li class="circle"></li>
  37. <li class="circle"></li>
  38. <li class="circle"></li>
  39. <li class="circle"></li>
  40. <li class="circle"></li>
  41. </ul>
  42. </div>
  43. </div>
  44. </body>
  45. </html>

CSS代码

  1. *{
  2. margin: 0;
  3. padding: 0;
  4. }
  5. a{
  6. list-style: none;
  7. }
  8. li{
  9. list-style: none;
  10. }
  11. .lunbo{
  12. width: 100%;
  13. }
  14. .content{
  15. width: 800px;
  16. height: 300px;
  17. margin: 20px auto;
  18. position: relative;
  19. }
  20. #item{
  21. width: 100%;
  22. height: 100%;
  23. }
  24. .item{
  25. position: absolute;
  26. opacity: 0;
  27. transition: all 1s;
  28. }
  29. .item.active{
  30. opacity:1;
  31. }
  32. img{
  33. width: 100%;
  34. }
  35. #btn-left{
  36. width: 30px;
  37. height: 69px;
  38. font-size: 30px;
  39. color: white;
  40. background-color:rgba(0,0,0,0.4);
  41. line-height: 69px;
  42. padding-left:5px;
  43. z-index: 10;/*始终显示在图片的上层*/
  44. position: absolute;
  45. left: 0;
  46. top: 50%;
  47. transform: translateY(-60%);/*使按钮向上偏移居中对齐*/
  48. cursor: pointer;
  49. opacity: 0;/*平时隐藏*/
  50. }
  51. .lunbo:hover #btn-left{
  52. /*鼠标滑入,显示图标*/
  53. opacity: 1;
  54. }
  55. #btn-right{
  56. width: 26px;
  57. height: 69px;
  58. font-size: 30px;
  59. color: white;
  60. background-color:rgba(0,0,0,0.4);
  61. line-height: 69px;
  62. padding-left: 5px;
  63. z-index: 10;
  64. position: absolute;
  65. right: 0;
  66. top: 50%;
  67. cursor: pointer;
  68. opacity: 0;
  69. transform: translateY(-60%);
  70. }
  71. .lunbo:hover #btn-right{
  72. opacity: 1;
  73. }
  74. #circle{
  75. height: 20px;
  76. display: flex;
  77. position: absolute;
  78. bottom: 35px;
  79. right: 25px;
  80. }
  81. .circle{
  82. width: 10px;
  83. height: 10px;
  84. border-radius: 10px;
  85. border: 2px solid white;
  86. background: rgba(0,0,0,0.4);
  87. cursor: pointer;
  88. margin: 5px;
  89. }
  90. .white{
  91. background-color: #FFFFFF;
  92. }

JS代码

  1. window.onload=function(){
  2. var items=document.getElementsByClassName("item");
  3. var circles=document.getElementsByClassName("circle");
  4. var leftBtn=document.getElementById("btn-left");
  5. var rightBtn=document.getElementById("btn-right");
  6. var content=document.querySelector('.content');
  7. var index=0;
  8. var timer=null;
  9. //清除class
  10. var clearclass=function(){
  11. for(let i=0;i<items.length;i++){
  12. items[i].className="item";
  13. circles[i].className="circle";
  14. circles[i].setAttribute("num",i);
  15. }
  16. }
  17. /*只显示一个class*/
  18. function move(){
  19. clearclass();
  20. items[index].className="item active";
  21. circles[index].className="circle white";
  22. }
  23. //点击右边按钮切换下一张图片
  24. rightBtn.onclick=function(){
  25. if(index<items.length-1){
  26. index++;
  27. }
  28. else{
  29. index=0;
  30. }
  31. move();
  32. }
  33. //点击左边按钮切换上一张图片
  34. leftBtn.onclick=function(){
  35. if(index<items.length){
  36. index--;
  37. }
  38. else{
  39. index=items.length-1;
  40. }
  41. move();
  42. }
  43. //开始定时器,点击右边按钮,实现轮播
  44. timer=setInterval(function(){
  45. rightBtn.onclick();
  46. },1500)
  47. //点击圆点时,跳转到对应图片
  48. for(var i=0;i<circles.length;i++){
  49. circles[i].addEventListener("click",function(){
  50. var point_index=this.getAttribute("num");
  51. index=point_index;
  52. move();
  53. })
  54. }
  55. //鼠标移入清除定时器,并开启一个三秒的定时器,使慢慢转动
  56. content.onmouseover=function(){
  57. clearInterval(timer);
  58. timer=setInterval(function(){
  59. rightBtn.onclick();
  60. },3000)
  61. }
  62. //鼠标移出又开启定时器
  63. content.onmouseleave=function(){
  64. clearInterval(timer);
  65. timer=setInterval(function(){
  66. rightBtn.onclick();
  67. },1500)
  68. }
  69. }

代码可能写的不是很好,存在很多不足,欢迎大家指点批评,我会努力去改正,有疑问欢迎留言,我会尽力去解答,谢谢大家花宝贵的时间来阅读这篇文章。

标签: javascript 前端 css3

本文转载自: https://blog.csdn.net/m0_67392409/article/details/123423516
版权归原作者 m0_67392409 所有, 如有侵权,请联系我们删除。

“JS实现轮播图的三种简单方法。”的评论:

还没有评论