返回

流畅易学!几行代码实现 JS+CSS3 图片滑块效果

前端

想要为你的网页添加吸引人的图片滑块效果?这篇教程将教你如何使用 JS+CSS3轻松实现这一效果,带你深入学习前端开发知识,掌握图片滑块的制作技巧。

先决条件

在学习本教程之前,你应该具备以下基础知识:

  • HTML和CSS的基本知识
  • JavaScript的基础知识

代码准备

首先,你需要准备一个HTML文件,代码如下:

<!DOCTYPE html>
<html>
<head>
  
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="slider">
    <div class="slide active">
      <img src="image1.jpg" alt="图片1">
    </div>
    <div class="slide">
      <img src="image2.jpg" alt="图片2">
    </div>
    <div class="slide">
      <img src="image3.jpg" alt="图片3">
    </div>
  </div>

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

然后,你需要准备一个CSS文件,代码如下:

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

.slide {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  transition: all 1s ease-in-out;
}

.slide.active {
  left: 0;
}

.slide.next {
  left: 100%;
}

.slide.prev {
  left: -100%;
}

最后,你需要准备一个JavaScript文件,代码如下:

const slider = document.querySelector('.slider');
const slides = document.querySelectorAll('.slide');
const nextButton = document.querySelector('.next');
const prevButton = document.querySelector('.prev');

let activeSlide = 0;

nextButton.addEventListener('click', () => {
  slides[activeSlide].classList.remove('active');
  slides[activeSlide].classList.add('prev');

  activeSlide++;

  if (activeSlide >= slides.length) {
    activeSlide = 0;
  }

  slides[activeSlide].classList.add('active');
  slides[activeSlide].classList.remove('next');
});

prevButton.addEventListener('click', () => {
  slides[activeSlide].classList.remove('active');
  slides[activeSlide].classList.add('next');

  activeSlide--;

  if (activeSlide < 0) {
    activeSlide = slides.length - 1;
  }

  slides[activeSlide].classList.add('active');
  slides[activeSlide].classList.remove('prev');
});

效果演示

将上述代码保存到各自的文件中,然后打开HTML文件,你就可以看到图片滑块的效果了。点击“下一个”按钮或“上一个”按钮可以切换图片。

总结

这篇教程向你介绍了如何使用 JS+CSS3实现图片滑块效果。你学到了如何使用HTML、CSS和JavaScript来创建图片滑块,以及如何使用事件监听器来控制滑块的切换。希望这篇教程对你有帮助,也希望你能在前端开发的道路上继续前进,创造出更酷炫的效果!