原生JS最简轮播图

概述

  • 改变img元素的margin-left再配合css3的transition属性实现过渡效果
  • 利用appendChild在父元素上追加节点在html结构上实现节点上的轮换

代码

<!DOCTYPE html>
<html lang="zh-cn">

<head>
  <meta charset="UTF-8">
  <title>轮播图</title>
  <style>
    .wrap {
      width: 600px;
      height: 360px;
      margin: 50px auto;
      overflow: hidden;
    }
    .container {
      /* 为预留效果宽度要设为2倍以上 */
      width: 2400px;
      width:-moz-calc(100% * 4);
      width:-webkit-calc(100%  * 4);
      width: calc(100% * 4);
      height: 100%;
      font-size: 0px; /* 解决图片间隙问题 */
    }
    .container img {
      width: 600px;
      height: 360px;
      transition: 2.3s; /* 过渡时间 */
    }
  </style>
</head>

<body>
  <div class="wrap">
    <div class="container">
      <img src="img/lunbo1.jpg" alt="">
      <img src="img/lunbo2.jpg" alt="">
      <img src="img/lunbo3.jpg" alt="">
      <img src="img/lunbo4.jpg" alt="">
    </div>
  </div>
  
  <script>
    var container = document.getElementsByClassName('container')[0];
    var images = container.children;
    function scrollImg() {
      //判断该幅图像是否轮播过
      if (images[0].style.marginLeft == '-600px') {
        images[0].style.marginLeft = '0'; //初始化为默认状态
        container.appendChild(images[0]); //html结构轮播实现循环轮播效果
      }
      images[0].style.marginLeft = '-600px';
      console.log('scrollImg');
    }
    //css设置的过渡时间最好小于定时器间隔时间
    setInterval(scrollImg, 2500);
  </script>
</body>
</html>

效果展示

轮播图展示效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值