• 轮播图的两种方法


    轮播图共计四种方法,本期先向大家分享两种,下期会补充剩余二个方法

    公共部分:

    1. * {
    2. padding: 0px;
    3. margin: 0px;
    4. }
    5. .banner {
    6. width: 600px;
    7. margin: auto;
    8. border: 10px solid green;
    9. height: 350px;
    10. position: relative;
    11. /* overflow: hidden; */
    12. }
    13. .imgList img {
    14. width: 600px;
    15. height: 350px;
    16. }
    17. .imgList {
    18. position: absolute;
    19. }
    20. .imgList li {
    21. float: left;
    22. margin-right: 20px;
    23. list-style: none;
    24. }
    25. .circle {
    26. position: absolute;
    27. bottom: 15px;
    28. left: 50%;
    29. transform: translateX(-50%);
    30. }
    31. .circle a {
    32. width: 15px;
    33. height: 15px;
    34. background: green;
    35. display: block;
    36. border-radius: 50%;
    37. opacity: .8;
    38. float: left;
    39. margin-right: 10px;
    40. }
    41. .circle a.hover {
    42. background: black;
    43. opacity: .7;
    44. }
    45. .hover{
    46. background-color:red;
    47. }

    HTML内容部分:
     

    1. <div class="banner">
    2. <ul class="imgList">
    3. <li><img src="banner/1.png" /></li>
    4. <li><img src="banner/2.jpg" /></li>
    5. <li><img src="banner/3.jpg" /></li>
    6. <li><img src="banner/4.jpg" /></li>
    7. </ul>
    8. <div class="circle">
    9. </div>
    10. </div>

    第一种方法的js内容:

        var imgList = document.querySelector('.imgList');
                var banner = document.querySelector('.banner');
                var circle = document.querySelector('.circle');

                //获取轮播图图片的长度  每个图片的宽度为620px  并将整体的宽度值赋给ul;
                window.οnlοad=function(){
                    imgList.style.width = imgList.children.length * 620 + "px";

                    //通过for循环,根据ul子标签的长度,创建相应的a标签个数;
                    for (var i = 0; i < imgList.children.length; i++) {
                        var aNub = document.createElement('a');

                        //上面创建好a标签后,我们将建好的a标签放置circle后面依次排列
                        circle.appendChild(aNub);
                        aNub.setAttribute('index', i);        

             
                    }
                    circle.addEventListener('click',function(e){
                      var thisindex =e.target.getAttribute('index');
                      imgList.style.left=-thisindex*620+"px";
                      console.log(e.target.nodeName);
                       if(e.target.nodeName!='A'){

                           //返回false 即 退出操作
                           return false;
                       }

                        // thisIndex = e.target.getAttribute('index');
                        //调用小圆点改变样式的函数
                        // circlechange();
                    })
                } 

    第二种方法的js内容:

        var imgList = document.querySelector('.imgList');
                var banner = document.querySelector('.banner');
                var circle = document.querySelector('.circle');
                var circleA = circle.children;
                var thisIndex = 0;

                //获取轮播图图片的长度  每个图片的宽度为620px  并将整体的宽度值赋给ul;
                window.οnlοad=function(){
                    imgList.style.width = imgList.children.length * 620 + "px";

                    //通过for循环,根据ul子标签的长度,创建相应的a标签个数;
                    for (var i = 0; i < imgList.children.length; i++) {
                        var aNub = document.createElement('a');

                        //上面创建好a标签后,我们将建好的a标签放置circle后面依次排列
                        circle.appendChild(aNub);
                        aNub.setAttribute('index', i);                

        let thisIndex=aNub.getAttribute('index');
                            aNub.οnclick=function(){
                              imgList.style.left=-thisIndex*620+"px";
                            }    

    //为了后面的创建及编写需要,我们再创建一个index属性 
                        // console.log(index);        

    }

  • 相关阅读:
    新手炒外汇,如何防止炒外汇被坑?
    form表单,formdata对象,实现文件上传
    功能强大的开源数据中台系统 DataCap 2024.03.3 发布
    JWT一篇通
    2004-2019年分省农产品进出口额
    yaml文件格式说明及编写教程
    sql-50练习题0-5
    [Codeforces] games (R1600) Part.1
    [Tools: git] Github Pull Request
    给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
  • 原文地址:https://blog.csdn.net/m0_59505309/article/details/125620695