…">
当前位置:首页 > JavaScript

简单js实现轮播

2026-03-01 08:34:44JavaScript

基础HTML结构

创建一个包含图片的容器,并添加必要的CSS样式隐藏溢出部分。

<div class="slider">
  <div class="slides">
    <img src="image1.jpg" class="slide">
    <img src="image2.jpg" class="slide">
    <img src="image3.jpg" class="slide">
  </div>
</div>
.slider {
  width: 500px;
  height: 300px;
  overflow: hidden;
  position: relative;
}
.slides {
  display: flex;
  transition: transform 0.5s ease;
}
.slide {
  min-width: 100%;
}

核心JavaScript逻辑

通过修改transform属性实现横向滑动效果,使用定时器控制自动轮播。

let currentSlide = 0;
const slides = document.querySelectorAll('.slide');
const totalSlides = slides.length;

function nextSlide() {
  currentSlide = (currentSlide + 1) % totalSlides;
  document.querySelector('.slides').style.transform = 
    `translateX(-${currentSlide * 100}%)`;
}

// 自动轮播
setInterval(nextSlide, 3000);

添加导航按钮

扩展功能包含前进/后退按钮和指示器圆点。

document.querySelector('.prev').addEventListener('click', () => {
  currentSlide = (currentSlide - 1 + totalSlides) % totalSlides;
  updateSlider();
});

document.querySelector('.next').addEventListener('click', () => {
  currentSlide = (currentSlide + 1) % totalSlides;
  updateSlider();
});

function updateSlider() {
  document.querySelector('.slides').style.transform = 
    `translateX(-${currentSlide * 100}%)`;

  // 更新指示器状态
  document.querySelectorAll('.dot').forEach((dot, index) => {
    dot.classList.toggle('active', index === currentSlide);
  });
}

响应式处理

添加窗口大小变化时的自适应调整。

window.addEventListener('resize', () => {
  document.querySelector('.slides').style.transform = 
    `translateX(-${currentSlide * 100}%)`;
});

完整示例整合

将所有功能整合为可复用的类形式。

简单js实现轮播

class SimpleSlider {
  constructor(selector) {
    this.slider = document.querySelector(selector);
    this.slides = this.slider.querySelectorAll('.slide');
    this.currentIndex = 0;
    this.init();
  }

  init() {
    setInterval(() => this.next(), 3000);
  }

  next() {
    this.currentIndex = (this.currentIndex + 1) % this.slides.length;
    this.update();
  }

  update() {
    this.slider.querySelector('.slides').style.transform = 
      `translateX(-${this.currentIndex * 100}%)`;
  }
}

new SimpleSlider('.slider');

标签: 简单js
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

简单实现vue github

简单实现vue github

实现 Vue 项目并托管到 GitHub 的步骤 创建 Vue 项目 使用 Vue CLI 快速初始化项目,确保已安装 Node.js 和 npm/yarn。 运行命令: npm init vu…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…

js 实现图片轮播

js 实现图片轮播

基础实现方案 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS负责样式布局,JavaScript处理轮播逻辑。 <div class="…