当前位置:   article > 正文

前端轮播图最简单实现(小白也能学会)_前端轮播图代码

前端轮播图代码

轮播图大家肯定都不陌生,因为这是前端最为常见的一个功能,现在随着框架和一些插件的兴起,很少人会去原生的去写轮播图,所以今天带大家写一下原生的轮播图来熟悉一下

最为主要的就是得知道这张图片的宽度,因为每一次移动的距离就是这张图片的宽度,但是宽度我们不能给死,每一张图片的大小是不一样的,所以根据js的clientWidth来获取,这样不管图片是多大都能获得这张图片的大小,第一步的移动距离就完成了,核心部分也就完成了

        然后就是选择的定时器,这里一定要用setInterval这个定时器,不能用setTimeout,主要原因就不细说了,大家应该是都很熟悉的。

        最后就是轮播到最后一张图片的时候该如何回到第一张图片呢?这里是直接不带动画的跳转到第一张(一会在代码中体现出来)

        下面就来看一下代码的实现过程:

首先是html结构文件,这个轮播图结构上不难:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <link rel="stylesheet" href="轮播图.css">
  9. <script src="轮播图.js"></script>
  10. </head>
  11. <body>
  12. <footer class="slideshow">
  13. <ul>
  14. <li><a href="#"><img src="image/2.jpg" alt=""></a></li>
  15. <li><a href="#"><img src="image/门.jpg" alt=""></a></li>
  16. <li><a href="#"><img src="image/灵压之旅.jpg" alt=""></a></li>
  17. <li><a href="#"><img src="image/2.png" alt=""></a></li>
  18. <li><a href="#"><img src="image/2.jpg" alt=""></a></li>
  19. </ul>
  20. </footer>
  21. </body>
  22. </html>

接下来就是css的样式,大家根据自己的喜好设置即可:

  1. *{
  2. margin: 0;
  3. padding: 0;
  4. }
  5. ul li {
  6. list-style: none;
  7. }
  8. .slideshow{
  9. position: relative;
  10. width: 1400px;
  11. height: 600px;
  12. margin: 0 auto;
  13. overflow: hidden;
  14. }
  15. .slideshow ul{
  16. width: 600%;
  17. position: absolute;
  18. height: 600px;
  19. left: 0;
  20. top: 0;
  21. /* transition: all 0s; */
  22. }
  23. .slideshow ul li{
  24. float: left;
  25. width: 1400px;
  26. height: 600px;
  27. }
  28. .slideshow ul li a img{
  29. width: 1400px;
  30. height: 600px;
  31. }

 最后就是核心部分的js:

  1. window.addEventListener("load", function () {
  2. var a = document.querySelector(".slideshow ul");
  3. // a.style.left="-1400px"
  4. // console.dir(a.children[0])
  5. console.log(a.children.length);
  6. var num = 0;
  7. var len = a.children[0].clientWidth;
  8. console.log(a.children[0].clientWidth);
  9. setInterval(function(){
  10. if(num==a.children.length){
  11. a.style.left="0px";
  12. a.style.transition="left 0s";
  13. num = 1;
  14. }else{
  15. a.style.left=-len*num+"px";
  16. a.style.transition="left 1s";
  17. num++;
  18. }
  19. },1500);
  20. })

希望大家学到东西

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/655386
推荐阅读
相关标签
  

闽ICP备14008679号