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

js实现图片轮播教程

2026-01-31 04:47:22JavaScript

实现基础图片轮播

HTML结构需包含轮播容器、图片列表及导航按钮:

<div class="slider">
  <div class="slides">
    <img src="image1.jpg" class="active">
    <img src="image2.jpg">
    <img src="image3.jpg">
  </div>
  <button class="prev">❮</button>
  <button class="next">❯</button>
</div>

CSS设置基础样式与过渡效果:

.slider {
  position: relative;
  width: 80%;
  margin: auto;
  overflow: hidden;
}
.slides img {
  width: 100%;
  display: none;
}
.slides img.active {
  display: block;
  animation: fade 1.5s;
}
@keyframes fade {
  from {opacity: 0.4}
  to {opacity: 1}
}

核心JavaScript逻辑

初始化变量与自动轮播功能:

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

function showSlide(index) {
  slides.forEach(slide => slide.classList.remove('active'));
  currentSlide = (index + totalSlides) % totalSlides;
  slides[currentSlide].classList.add('active');
}

function autoPlay() {
  showSlide(currentSlide + 1);
  setTimeout(autoPlay, 3000);
}
autoPlay();

添加按钮事件监听:

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

document.querySelector('.prev').addEventListener('click', () => {
  showSlide(currentSlide - 1);
});

增强功能实现

添加指示器导航:

<div class="dots">
  <span class="dot active" data-index="0"></span>
  <span class="dot" data-index="1"></span>
  <span class="dot" data-index="2"></span>
</div>

对应JavaScript交互:

document.querySelectorAll('.dot').forEach(dot => {
  dot.addEventListener('click', (e) => {
    showSlide(parseInt(e.target.dataset.index));
  });
});

function updateDots() {
  document.querySelectorAll('.dot').forEach((dot, i) => {
    dot.classList.toggle('active', i === currentSlide);
  });
}

响应式处理

监听窗口大小变化调整轮播尺寸:

function resizeSlider() {
  const slider = document.querySelector('.slider');
  slider.style.height = `${slider.offsetWidth * 0.6}px`;
}
window.addEventListener('resize', resizeSlider);
resizeSlider();

触摸屏支持

添加触摸事件处理:

let touchStartX = 0;
const slider = document.querySelector('.slider');

slider.addEventListener('touchstart', (e) => {
  touchStartX = e.touches[0].clientX;
});

slider.addEventListener('touchend', (e) => {
  const touchEndX = e.changedTouches[0].clientX;
  if (touchEndX - touchStartX > 50) showSlide(currentSlide - 1);
  if (touchStartX - touchEndX > 50) showSlide(currentSlide + 1);
});

js实现图片轮播教程

标签: 教程图片
分享给朋友:

相关文章

jquery教程

jquery教程

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。其核心特点是“写得更少,做得更多”(Write Les…

css动画制作图片

css动画制作图片

CSS动画制作图片的方法 使用CSS动画可以为图片添加各种动态效果,提升网页的视觉吸引力。以下是几种常见的CSS动画实现方式: 关键帧动画(@keyframes) 通过定义关键帧来控制动画的各个阶…

js实现图片滚动效果

js实现图片滚动效果

使用CSS动画实现图片滚动 通过CSS的@keyframes和animation属性实现无缝滚动效果。将图片容器设置为横向排列,通过动画平移位置。 <style> .scroll-c…

vue实现图片预览

vue实现图片预览

实现图片预览功能 在Vue中实现图片预览功能可以通过多种方式完成,常见的有使用原生HTML5的<dialog>元素、第三方库如viewer.js或vue-photo-preview,以及自…

vue前端实现教程

vue前端实现教程

Vue 前端实现基础教程 环境准备 确保已安装 Node.js(建议版本 14+)和 npm/yarn。通过以下命令安装 Vue CLI(官方脚手架工具): npm install -g @vue…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Im…