当前位置:首页 > JavaScript

js 轮播实现

2026-02-01 01:03:22JavaScript

使用纯 JavaScript 实现轮播

通过操作 DOM 元素和 CSS 类名实现基础轮播效果。核心思路是通过定时切换显示不同图片,并添加过渡动画。

// 获取轮播元素
const slider = document.querySelector('.slider');
const slides = document.querySelectorAll('.slide');
let currentSlide = 0;

// 初始化轮播
function initSlider() {
  slides[0].classList.add('active');
  setInterval(nextSlide, 3000);
}

// 切换下一张
function nextSlide() {
  slides[currentSlide].classList.remove('active');
  currentSlide = (currentSlide + 1) % slides.length;
  slides[currentSlide].classList.add('active');
}

// 启动轮播
initSlider();

添加过渡动画效果

通过 CSS 实现平滑的过渡效果,需配合 JavaScript 的类名切换。

js 轮播实现

.slide {
  position: absolute;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.slide.active {
  opacity: 1;
}

实现导航按钮

添加前后导航按钮增强用户交互体验。

const prevBtn = document.querySelector('.prev');
const nextBtn = document.querySelector('.next');

prevBtn.addEventListener('click', () => {
  slides[currentSlide].classList.remove('active');
  currentSlide = (currentSlide - 1 + slides.length) % slides.length;
  slides[currentSlide].classList.add('active');
});

nextBtn.addEventListener('click', nextSlide);

响应式轮播实现

通过监听窗口大小变化调整轮播布局。

js 轮播实现

window.addEventListener('resize', () => {
  slides.forEach(slide => {
    slide.style.width = `${slider.offsetWidth}px`;
  });
});

使用 requestAnimationFrame 优化性能

替代 setInterval 实现更流畅的动画效果。

function animateSlider() {
  requestAnimationFrame(animateSlider);
  // 动画逻辑
}

animateSlider();

触摸事件支持

添加移动端触摸支持,实现手势滑动切换。

let touchStartX = 0;
let touchEndX = 0;

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

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

function handleSwipe() {
  if (touchEndX < touchStartX) nextSlide();
  if (touchEndX > touchStartX) prevSlide();
}

标签: js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现打印

js实现打印

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

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式…