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

简单js实现轮播

2026-01-30 17:31:56JavaScript

实现基础轮播图

使用HTML和CSS创建基本结构,JavaScript实现轮播逻辑:

<div class="slider">
  <div class="slides">
    <img src="image1.jpg" class="slide active">
    <img src="image2.jpg" class="slide">
    <img src="image3.jpg" class="slide">
  </div>
  <button class="prev">❮</button>
  <button class="next">❯</button>
</div>
.slider {
  position: relative;
  width: 500px;
  height: 300px;
  overflow: hidden;
}
.slides {
  display: flex;
  transition: transform 0.5s ease;
}
.slide {
  min-width: 100%;
}
.active {
  display: block;
}
button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.prev { left: 10px; }
.next { right: 10px; }

JavaScript轮播逻辑

const slides = document.querySelectorAll('.slide');
const prevBtn = document.querySelector('.prev');
const nextBtn = document.querySelector('.next');
const slidesContainer = document.querySelector('.slides');
let currentIndex = 0;

function updateSlide() {
  slidesContainer.style.transform = `translateX(-${currentIndex * 100}%)`;
  slides.forEach(slide => slide.classList.remove('active'));
  slides[currentIndex].classList.add('active');
}

nextBtn.addEventListener('click', () => {
  currentIndex = (currentIndex + 1) % slides.length;
  updateSlide();
});

prevBtn.addEventListener('click', () => {
  currentIndex = (currentIndex - 1 + slides.length) % slides.length;
  updateSlide();
});

// 自动轮播
setInterval(() => {
  currentIndex = (currentIndex + 1) % slides.length;
  updateSlide();
}, 3000);

添加指示器

在HTML中添加指示器元素:

<div class="indicators"></div>

JavaScript部分添加指示器逻辑:

const indicatorsContainer = document.querySelector('.indicators');

function createIndicators() {
  slides.forEach((_, index) => {
    const indicator = document.createElement('div');
    indicator.classList.add('indicator');
    if(index === 0) indicator.classList.add('active');
    indicator.addEventListener('click', () => {
      currentIndex = index;
      updateSlide();
    });
    indicatorsContainer.appendChild(indicator);
  });
}

function updateIndicators() {
  document.querySelectorAll('.indicator').forEach((ind, index) => {
    ind.classList.toggle('active', index === currentIndex);
  });
}

// 在updateSlide函数中调用
function updateSlide() {
  slidesContainer.style.transform = `translateX(-${currentIndex * 100}%)`;
  slides.forEach(slide => slide.classList.remove('active'));
  slides[currentIndex].classList.add('active');
  updateIndicators();
}

createIndicators();

触摸支持

添加触摸事件支持移动设备:

let touchStartX = 0;
let touchEndX = 0;

slidesContainer.addEventListener('touchstart', e => {
  touchStartX = e.changedTouches[0].screenX;
});

slidesContainer.addEventListener('touchend', e => {
  touchEndX = e.changedTouches[0].screenX;
  handleSwipe();
});

function handleSwipe() {
  if(touchEndX < touchStartX - 50) {
    currentIndex = (currentIndex + 1) % slides.length;
  }
  if(touchEndX > touchStartX + 50) {
    currentIndex = (currentIndex - 1 + slides.length) % slides.length;
  }
  updateSlide();
}

性能优化

添加过渡结束事件处理:

简单js实现轮播

let isTransitioning = false;

slidesContainer.addEventListener('transitionstart', () => {
  isTransitioning = true;
});

slidesContainer.addEventListener('transitionend', () => {
  isTransitioning = false;
});

function updateSlide() {
  if(isTransitioning) return;
  slidesContainer.style.transform = `translateX(-${currentIndex * 100}%)`;
  // 其余逻辑...
}

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

相关文章

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现验证码

js实现验证码

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

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…