当前位置:首页 > JavaScript

用js实现图片切换效果

2026-01-31 08:21:00JavaScript

基础图片切换实现

通过修改<img>标签的src属性实现图片切换效果:

const images = ['image1.jpg', 'image2.jpg', 'image3.jpg'];
let currentIndex = 0;
const imgElement = document.getElementById('myImage');

function changeImage() {
  currentIndex = (currentIndex + 1) % images.length;
  imgElement.src = images[currentIndex];
}

// 每3秒切换一次
setInterval(changeImage, 3000);

添加过渡动画效果

使用CSS过渡实现淡入淡出效果:

#myImage {
  transition: opacity 0.5s ease-in-out;
}

.fade-out {
  opacity: 0;
}
function fadeImage() {
  imgElement.classList.add('fade-out');

  setTimeout(() => {
    currentIndex = (currentIndex + 1) % images.length;
    imgElement.src = images[currentIndex];
    imgElement.classList.remove('fade-out');
  }, 500);
}

按钮控制切换

添加前进和后退按钮控制:

用js实现图片切换效果

document.getElementById('prevBtn').addEventListener('click', () => {
  currentIndex = (currentIndex - 1 + images.length) % images.length;
  imgElement.src = images[currentIndex];
});

document.getElementById('nextBtn').addEventListener('click', () => {
  currentIndex = (currentIndex + 1) % images.length;
  imgElement.src = images[currentIndex];
});

缩略图导航实现

创建缩略图点击切换功能:

const thumbnailsContainer = document.getElementById('thumbnails');

images.forEach((image, index) => {
  const thumb = document.createElement('img');
  thumb.src = image;
  thumb.className = 'thumbnail';
  thumb.addEventListener('click', () => {
    currentIndex = index;
    imgElement.src = image;
  });
  thumbnailsContainer.appendChild(thumb);
});

响应式图片切换

根据窗口大小加载不同尺寸图片:

用js实现图片切换效果

function getResponsiveImage(index) {
  const width = window.innerWidth;
  if (width < 768) {
    return `mobile-${images[index]}`;
  } else if (width < 1024) {
    return `tablet-${images[index]}`;
  }
  return images[index];
}

window.addEventListener('resize', () => {
  imgElement.src = getResponsiveImage(currentIndex);
});

预加载图片优化

提升切换流畅度:

function preloadImages() {
  images.forEach(image => {
    const img = new Image();
    img.src = image;
  });
}

window.addEventListener('DOMContentLoaded', preloadImages);

无限循环轮播

实现无缝循环效果:

function infiniteCarousel() {
  const firstClone = imgElement.cloneNode();
  const lastClone = imgElement.cloneNode();

  // 添加到DOM
  container.insertBefore(lastClone, imgElement);
  container.appendChild(firstClone);

  let counter = 1;
  const size = imgElement.clientWidth;

  container.style.transform = `translateX(${-size * counter}px)`;

  container.addEventListener('transitionend', () => {
    if (imgElement[counter] === lastClone.id) {
      container.style.transition = 'none';
      counter = images.length - 2;
      container.style.transform = `translateX(${-size * counter}px)`;
    }
    // 类似处理开头情况
  });
}

标签: 效果图片
分享给朋友:

相关文章

css图片按钮制作

css图片按钮制作

使用纯CSS创建图片按钮 通过CSS的background-image属性可以轻松将图片设置为按钮背景。关键点在于设置合适的尺寸、去除默认边框并添加交互状态: .image-btn { widt…

jquery效果

jquery效果

jQuery 动画效果 jQuery 提供了多种内置动画效果,可用于实现平滑的页面交互。常用的方法包括 show()、hide()、toggle()、fadeIn()、fadeOut()、slideU…

vue实现图片单选

vue实现图片单选

Vue 实现图片单选功能 在 Vue 中实现图片单选功能可以通过多种方式完成,以下是两种常见的实现方法: 方法一:使用 v-model 和单选按钮 通过将单选按钮与图片绑定,利用 v-model 管…

react如何渲染图片

react如何渲染图片

在React中渲染图片的方法 使用<img>标签直接引入本地图片 将图片文件放入项目目录(如src/assets),通过相对路径引入。需注意Webpack可能需要配置file-loader…

vue实现图片切换

vue实现图片切换

实现图片切换的方法 使用v-for和v-bind动态绑定图片 通过v-for循环渲染图片列表,结合v-bind动态绑定图片路径,实现切换效果。 <template> <div&…

js实现图片拖动

js实现图片拖动

实现图片拖动的步骤 使用JavaScript实现图片拖动功能,可以通过HTML5的拖放API结合事件监听实现。以下是具体方法: 设置HTML结构 为图片添加draggable属性,并设置唯一ID以便…