当前位置:首页 > JavaScript

js 实现图片切换

2026-02-02 15:33:29JavaScript

使用纯 JavaScript 实现图片切换

通过监听事件和操作 DOM 元素实现图片切换功能。以下是一个基础实现示例:

// 获取 DOM 元素
const images = document.querySelectorAll('.image-container img');
const prevBtn = document.getElementById('prev');
const nextBtn = document.getElementById('next');
let currentIndex = 0;

// 显示当前图片
function showImage(index) {
  images.forEach((img, i) => {
    img.style.display = i === index ? 'block' : 'none';
  });
}

// 上一张图片
prevBtn.addEventListener('click', () => {
  currentIndex = (currentIndex - 1 + images.length) % images.length;
  showImage(currentIndex);
});

// 下一张图片
nextBtn.addEventListener('click', () => {
  currentIndex = (currentIndex + 1) % images.length;
  showImage(currentIndex);
});

// 初始化显示第一张图片
showImage(0);

添加过渡动画效果

通过 CSS 过渡属性实现平滑切换效果:

js 实现图片切换

.image-container img {
  transition: opacity 0.5s ease;
  opacity: 0;
  position: absolute;
}

.image-container img.active {
  opacity: 1;
}

更新 JavaScript 代码:

function showImage(index) {
  images.forEach(img => img.classList.remove('active'));
  images[index].classList.add('active');
}

自动轮播功能

添加定时器实现自动轮播:

js 实现图片切换

let slideInterval;

function startSlideshow() {
  slideInterval = setInterval(() => {
    currentIndex = (currentIndex + 1) % images.length;
    showImage(currentIndex);
  }, 3000);
}

function stopSlideshow() {
  clearInterval(slideInterval);
}

// 鼠标悬停时暂停轮播
document.querySelector('.image-container').addEventListener('mouseenter', stopSlideshow);
document.querySelector('.image-container').addEventListener('mouseleave', startSlideshow);

// 初始化
showImage(0);
startSlideshow();

缩略图导航

添加缩略图点击切换功能:

const thumbnails = document.querySelectorAll('.thumbnail');

thumbnails.forEach((thumb, index) => {
  thumb.addEventListener('click', () => {
    currentIndex = index;
    showImage(currentIndex);
  });
});

function showImage(index) {
  images.forEach(img => img.classList.remove('active'));
  thumbnails.forEach(thumb => thumb.classList.remove('active'));

  images[index].classList.add('active');
  thumbnails[index].classList.add('active');
}

响应式图片切换

根据窗口大小调整图片显示:

function resizeHandler() {
  const container = document.querySelector('.image-container');
  const containerWidth = container.offsetWidth;

  images.forEach(img => {
    img.style.width = `${containerWidth}px`;
    img.style.height = 'auto';
  });
}

window.addEventListener('resize', resizeHandler);
resizeHandler();

标签: 图片js
分享给朋友:

相关文章

vue实现图片循环

vue实现图片循环

实现图片循环的基本方法 在Vue中实现图片循环通常使用v-for指令结合数组数据。以下是基础实现方式: <template> <div> <img v-fo…

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

网页制作css图片切换

网页制作css图片切换

CSS图片切换的实现方法 使用CSS实现图片切换可以通过多种方式完成,以下是几种常见的方法: 纯CSS轮播图 通过CSS动画和关键帧实现自动轮播效果。定义一个容器,内部放置多个图片,利用ani…

vue实现图片轮播

vue实现图片轮播

Vue 实现图片轮播的方法 使用第三方库(推荐) 安装 vue-awesome-swiper 库,这是基于 Swiper 的 Vue 封装: npm install swiper vue-awe…

vue实现图片打点

vue实现图片打点

实现图片打点的基本思路 图片打点功能通常指在图片上添加可交互的标记点,点击或悬停时显示相关信息。Vue实现该功能需要结合DOM操作和事件监听。 核心步骤 准备图片和容器 在Vue组件中设置一个相对定…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…