麻烦老师看一下自动轮播的代码
来源:6-4 编写呼吸轮播特效
DanielDu87
2022-08-15 20:05:05
<!doctype html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>document</title> </head> <style> * { margin: 0; padding: 0; } .carousel { position: relative; width: 650px; height: 360px; margin: 10px auto; background-color: orange; } .carousel ul { position: relative; left: 0; width: 9999px; height: 360px; list-style: none; } ul li { position: absolute; top: 0; left: 0; transition: opacity 0.5s ease 0s; opacity: 0; } ul li:first-child { opacity: 1; } </style> <body> <div class="carousel"> <ul> <li><img alt="" src="../images/beijing/1.jpg"></li> <li><img alt="" src="../images/beijing/2.jpg"></li> <li><img alt="" src="../images/beijing/3.jpg"></li> <li><img alt="" src="../images/beijing/4.jpg"></li> </ul> </div> <script> var carousel = document.querySelector(".carousel"); var ul = carousel.querySelector("ul"); var lis = carousel.querySelectorAll("li"); //当前是第几张图片 var index = 0; //自动轮播 setInterval(function () { index++; //到最后一个就回去第一个 if (index === lis.length) { lis[index - 1].style.opacity = 0; index = 1; lis[index].style.opacity = 1; } lis[index - 1].style.opacity = 0; lis[index].style.opacity = 1; }, 1000); </script> </body> </html>
1回答
好帮手慕久久
2022-08-16
同学你好,代码逻辑有点问题:
当轮播图切换到最后一张后,再次轮播,会跳过第一张图,直接显示第二张图:
并且会切换两次:
调整如下:
var carousel = document.querySelector(".carousel"); var ul = carousel.querySelector("ul"); var lis = carousel.querySelectorAll("li"); //当前是第几张图片 var index = 0; //自动轮播 setInterval(function () { index++; //到最后一个就回去第一个 if (index === lis.length) { lis[index - 1].style.opacity = 0; // index = 1; index = 0 lis[index].style.opacity = 1; } else { lis[index - 1].style.opacity = 0; lis[index].style.opacity = 1; } }, 1000);
祝学习愉快!
相似问题