基于html+js实现轮播图

以下是基于HTML和JavaScript实现上下轮播和左右轮播的代码和说明文档

HTML代码:

<!DOCTYPE html>
<html>
<head>
  <title>轮播图</title>
  <style>
    .slideshow-container {
      position: relative;
      width: 500px;
      height: 300px;
      margin: 0 auto;
      overflow: hidden;
    }
  
    .slide {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      opacity: 0;
      transition: opacity 1s ease;
    }
  
    .slide.active {
      opacity: 1;
    }

    .dot-container {
      text-align: center;
      margin-top: 10px;
    }

    .dot {
      display: inline-block;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background-color: gray;
      margin: 0 5px;
      cursor: pointer;
    }

    .dot.active {
      background-color: black;
    }
  </style>
</head>
<body>
  <div class="slideshow-container">
    <div class="slide active">
      <img src="image1.jpg" alt="Image 1">
    </div>
    <div class="slide">
      <img src="image2.jpg" alt="Image 2">
    </div>
    <div class="slide">
      <img src="image3.jpg" alt="Image 3">
    </div>
  </div>

  <div class="dot-container">
    <span class="dot active"></span>
    <span class="dot"></span>
    <span class="dot"></span>
  </div>

  <script src="script.js"></script>
</body>
</html>

JavaScript代码(script.js):

document.addEventListener("DOMContentLoaded", function() {
  var slides = document.querySelectorAll(".slide");
  var dots = document.querySelectorAll(".dot");
  var currentSlide = 0;
  var slideInterval = setInterval(nextSlide, 2000);

  function nextSlide() {
    slides[currentSlide].classList.remove("active");
    dots[currentSlide].classList.remove("active");
    currentSlide = (currentSlide + 1) % slides.length;
    slides[currentSlide].classList.add("active");
    dots[currentSlide].classList.add("active");
  }

  dots.forEach(function(dot, index) {
    dot.addEventListener("click", function() {
      slides[currentSlide].classList.remove("active");
      dots[currentSlide].classList.remove("active");
      currentSlide = index;
      slides[currentSlide].classList.add("active");
      dots[currentSlide].classList.add("active");
    });
  });
});

说明文档:

  1. 在HTML代码中,我们添加了一个新的容器(.dot-container)来放置小圆点。
  2. 在容器内部,我们创建了与轮播图项数量相同的小圆点(.dot)。
  3. 在JavaScript代码中,我们使用document.querySelectorAll方法选择所有的小圆点,并将它们存储在dots变量中。
  4. 我们使用dots.forEach方法遍历所有小圆点,并为每个小圆点添加点击事件监听器。
  5. 在点击事件处理函数中,我们首先移除当前显示的轮播图项和小圆点的active类,然后将当前轮播图项和小圆点的索引更新为点击的小圆点的索引,最后将更新后的轮播图项和小圆点添加active类,以实现切换到对应的轮播图项。
  6. 注意在nextSlide函数中,我们也更新了小圆点的active类,以保持与当前显示的轮播图项对应的小圆点的激活状态。

通过以上修改,你现在可以通过点击小圆点来切换轮播图了。每个小圆点代表一个轮播图项,点击不同的小圆点将切换到对应的轮播图项。切换过程中,小圆点的激活状态也会相应地更新。

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是一个基于 HTML、CSS 和 JavaScript 的简单轮播图示例: HTML 代码: ```html <div class="slider-container"> <div class="slider"> <img src="image1.jpg" alt="Image 1"> <img src="image2.jpg" alt="Image 2"> <img src="image3.jpg" alt="Image 3"> </div> <a class="prev" onclick="changeSlide(-1)">❮</a> <a class="next" onclick="changeSlide(1)">❯</a> </div> ``` CSS 代码: ```css .slider-container { position: relative; width: 100%; height: 400px; overflow: hidden; } .slider { position: absolute; top: 0; left: 0; width: 300%; height: 100%; transition: transform 0.5s ease-in-out; } .slider img { float: left; width: 33.33333333%; height: 100%; } .prev, .next { position: absolute; top: 50%; transform: translateY(-50%); font-size: 30px; font-weight: bold; color: #fff; cursor: pointer; } .prev { left: 0; } .next { right: 0; } ``` JavaScript 代码: ```javascript var slideIndex = 1; showSlide(slideIndex); function changeSlide(n) { showSlide(slideIndex += n); } function showSlide(n) { var slides = document.getElementsByClassName("slider")[0].getElementsByTagName("img"); if (n > slides.length) { slideIndex = 1; } if (n < 1) { slideIndex = slides.length; } for (var i = 0; i < slides.length; i++) { slides[i].style.display = "none"; } slides[slideIndex-1].style.display = "block"; } ``` 在示例中,轮播图被包裹在一个容器元素 `.slider-container` 中,其中 `.slider` 是包含了所有要轮播的图片的元素,`.prev` 和 `.next` 是分别代表向前和向后切换的按钮。CSS 中,`.slider` 使用了 `position: absolute` 和 `width: 300%` 来让里面的图片元素能够水平排列在一起,并且通过 `transition` 实现了切换时的动画效果。JavaScript 中,`showSlide` 函数实现了切换图片时的逻辑,`changeSlide` 函数则是在点击按钮时触发的切换事件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一花一world

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值