原生js---轮播图封装函数

 原生js---节点轮播图封装函数

第一次在CSDN上这个平台上写博客,以后多写博客来与大家分享与交流。有问题的地方还请各位大神指导。废话少说,上代码。
/*操作轮播图*/
  function nodeLunbo(obj,left,right,imgBox,imgone){
    var lunbo=obj;//调用方法
    var left=left;//点击左边切换
    var right=right;//点击右边切换
    var imgBox=imgBox;//装IMG的盒子
    var width=parseInt(getStyle(imgone,"width"));//获取其中一个的宽度
    var t=setInterval(move,1500);//设置时间函数
    var n=2;//设置需要移动的数量
    function move(){//定义函数
      animate(imgBox,{left:-width*n},600,function(){
        for(var i=1;i<n;i++){
          var imgFirst=getFirst(imgBox);
          imgBox.appendChild(imgFirst);//循环完追加到前面 继续循环
        }
        imgBox.style.left="0px";//刚开始的时候盒子的位置
      });
    }
    lunbo.onmouseover=function(){//鼠标放上去的时候轮播暂停
      clearInterval(t);
    }
    lunbo.onmouseout=function(){//鼠标离开的时候轮播开始
      t=setInterval(move,1500);
    }
    left.onclick=function(){//点击左边的按钮,图片切换
      for(var i=1;i<=n;i++){
        var last=getLast(imgBox);
        var First=getFirst(imgBox);
        insertBefore(last,First);
      }
      imgBox.style.left=-width*n+"px";
      animate(imgBox,{left:0},600)
    }
    right.onclick=function(){//点击右边的按钮,图片切换
      move();
    }
  }
  var obj=$(".lunbo");
  for(var i=0;i<obj.length;i++){
    nodeLunbo(obj[i]);
  }
 调用方法
  nodeLunbo(obj,left,right,imgBox,imgone);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于原生JS实现的轮播图案例: HTML部分: ```html <div class="slider"> <div class="slider-wrapper"> <img src="image1.jpg"> <img src="image2.jpg"> <img src="image3.jpg"> </div> <div class="slider-dots"> <span class="dot active"></span> <span class="dot"></span> <span class="dot"></span> </div> </div> ``` CSS部分: ```css .slider { position: relative; overflow: hidden; } .slider-wrapper { display: flex; transition: transform 0.5s ease-out; } .slider-wrapper img { width: 100%; height: auto; } .slider-dots { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; } .slider-dots .dot { width: 10px; height: 10px; border-radius: 50%; background-color: #ccc; margin-right: 10px; cursor: pointer; } .slider-dots .active { background-color: #333; } ``` JS部分: ```js const slider = document.querySelector('.slider'); const wrapper = slider.querySelector('.slider-wrapper'); const images = wrapper.querySelectorAll('img'); const dots = slider.querySelectorAll('.dot'); let currentImage = 0; let interval; function startSlider() { interval = setInterval(() => { currentImage++; if (currentImage >= images.length) { currentImage = 0; } goToImage(currentImage); }, 3000); } function goToImage(index) { wrapper.style.transform = `translateX(-${index * 100}%)`; updateDots(index); } function updateDots(index) { dots.forEach(dot => { dot.classList.remove('active'); }); dots[index].classList.add('active'); } dots.forEach((dot, index) => { dot.addEventListener('click', () => { currentImage = index; goToImage(currentImage); clearInterval(interval); startSlider(); }); }); startSlider(); ``` 这个轮播图实现了自动播放和手动切换图片的功能,并且可以根据当前显示的图片来更新底部的小圆点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值