原生js模仿京东轮播图效果(简易效果)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style type="text/css">
    *{
      margin: 0;
      padding: 0;
      list-style-type: none;
    }
    .bigBox{
      width: 800px;
      height: 200px;
      border: 1px solid red;
      margin: 0 auto;
      position: relative;
      overflow: hidden;
    }
    .navOne{
      width: 2200px;
      height: 200px;
      position: absolute;
      left: 0;
      top: 0;
    }
    .navOne > li {
      width: 200px;
      height: 200px;
      float: left;
    }
  </style>
</head>
<body>
<div class="bigBox">
    <ul class="navOne">
      <li style="background: red">red</li>
      <li style="background: orange">orange</li>
      <li style="background: yellow">yellow</li>
      <li style="background: green">green</li>
      <li style="background: cyan">cyan</li>
      <li style="background: blue">blue</li>
      <li style="background: purple">purple</li>
      <li style="background: red">red</li>
      <li style="background: orange">orange</li>
      <li style="background: yellow">yellow</li>
      <li style="background: green">green</li>
    </ul>
</div>
<script type="text/javascript" src="./js/commom.js"></script><!--/*封装了一个获取节点函数*/-->
<script type="text/javascript">
  var navOne = myqs('.navOne');/*相当于document.querySelector('.navOne');*/
  var bigBox = myqs('.bigBox');
  var timer = setInterval(pM , 20);

  function pM() {
    /*到第8张red的时瞬间还原到第一张red从而达到无缝的效果*/
    if (bigBox.scrollLeft >= navOne.offsetWidth * (7 / 11)) {
      bigBox.scrollLeft = 0;
    }
    /*逐渐香左移动*/
    bigBox.scrollLeft++;
  }
  /*放上暂停轮播*/
  bigBox.onmouseover = function () {
    clearInterval(timer);
  };
  /*移开暂停轮播*/
  bigBox.onmouseout = function () {
    timer = setInterval(pM , 20);
  };
</script>
</body>
</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
原生JS实现走马灯轮播图可以使用以下步骤: 1. 创建一个包含图片的HTML结构,每个图片都放在一个容器中,并将它们水平排列。可以使用无序列表(ul)和列表项(li)来实现。 ```html <div class="slider"> <ul class="slides"> <li><img src="image1.jpg" alt="Image 1"></li> <li><img src="image2.jpg" alt="Image 2"></li> <li><img src="image3.jpg" alt="Image 3"></li> </ul> </div> ``` 2. 在CSS文件中设置样式,使得图片容器的宽度等于一张图片的宽度,并且设置overflow属性为hidden,隐藏超出容器宽度的部分。 ```css .slider { width: 400px; overflow: hidden; } .slides { display: flex; transition: transform 0.3s ease-in-out;} .slides li { flex: 0 0 400px; } ``` 3. 使用JavaScript来实现轮播效果。首先,获取轮播图的父元素和所有的图片项。然后,设置一个计数器变量来跟踪当前显示的图片索引。使用定时器或者requestAnimationFrame()函数来更新图片的位置,产生轮播效果。 ```javascript const slider = document.querySelector('.slider'); const slides = document.querySelectorAll('.slides li'); let currentIndex = 0; function nextSlide() { currentIndex = (currentIndex + 1) % slides.length; updateSlidePosition(); } function updateSlidePosition() { for (let i = 0; i < slides.length; i++) { slides[i].style.transform = `translateX(-${currentIndex * 400}px)`; } } setInterval(nextSlide, 3000); ``` 现在,你的走马灯轮播图就完成了!它会每隔3秒自动切换到下一张图片。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值