以下是一个简单的 JavaScript 轮播图实现:

HTML:

<div class='slider'>
  <div class='slides'>
    <img src='image1.jpg'>
    <img src='image2.jpg'>
    <img src='image3.jpg'>
  </div>
  <div class='controls'>
    <div class='prev'>
      <i class='fas fa-angle-left'></i>
    </div>
    <div class='next'>
      <i class='fas fa-angle-right'></i>
    </div>
  </div>
</div>

CSS:

.slider {
  position: relative;
  width: 100%;
  height: 400px;
  overflow: hidden;
}

.slides {
  position: absolute;
  width: 300%;
  height: 100%;
  left: 0;
  transition: left 0.5s ease-in-out;
}

.slides img {
  width: 33.3333%;
  height: 100%;
  float: left;
}

.controls {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  height: 30px;
  display: flex;
  justify-content: space-between;
  z-index: 1;
}

.prev, .next {
  width: 30px;
  height: 30px;
  background-color: rgba(0, 0, 0, 0.4);
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: background-color 0.3s ease-in-out;
}

.prev:hover, .next:hover {
  background-color: rgba(0, 0, 0, 0.6);
}

.prev i, .next i {
  color: #fff;
  font-size: 20px;
}

JavaScript:

const slider = document.querySelector('.slider');
const slides = document.querySelector('.slides');
const prevBtn = document.querySelector('.prev');
const nextBtn = document.querySelector('.next');
const slideWidth = slider.clientWidth / 3;
let slideIndex = 0;

function slideNext() {
  if (slideIndex === 2) {
    slideIndex = 0;
  } else {
    slideIndex++;
  }
  slides.style.left = -slideWidth * slideIndex + 'px';
}

function slidePrev() {
  if (slideIndex === 0) {
    slideIndex = 2;
  } else {
    slideIndex--;
  }
  slides.style.left = -slideWidth * slideIndex + 'px';
}

nextBtn.addEventListener('click', slideNext);
prevBtn.addEventListener('click', slidePrev);

这个轮播图有三张图片,每张图片宽度为 slider 的 1/3,通过控制 slides 的 left 属性实现轮播。点击 prev 或 next 按钮时,判断当前 slideIndex,如果到了最后一张或第一张,就从头开始或从尾开始。

JavaScript 轮播图实现教程:简洁易懂的代码示例

原文地址: https://www.cveoy.top/t/topic/mw0n 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录