当前位置:首页 > JavaScript

js实现图片切换

2026-04-04 01:03:08JavaScript

使用JavaScript实现图片切换

图片切换是网页开发中常见的功能,可以通过多种方式实现。以下是几种常见的方法:

通过修改src属性切换图片

创建一个图片数组,通过修改img元素的src属性实现切换:

js实现图片切换

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];
}

// 定时切换
setInterval(changeImage, 2000);

使用CSS类和display属性

通过切换CSS类或修改display属性实现图片轮播:

const slides = document.querySelectorAll('.slide');
let currentSlide = 0;

function showSlide(index) {
  slides.forEach(slide => slide.style.display = 'none');
  slides[index].style.display = 'block';
}

function nextSlide() {
  currentSlide = (currentSlide + 1) % slides.length;
  showSlide(currentSlide);
}

showSlide(0);
setInterval(nextSlide, 3000);

添加过渡动画效果

为图片切换添加平滑的过渡效果:

js实现图片切换

const slider = document.querySelector('.slider');
const slides = document.querySelectorAll('.slide');
let currentIndex = 0;

function goToSlide(index) {
  slider.style.transform = `translateX(-${index * 100}%)`;
}

function nextSlide() {
  currentIndex = (currentIndex + 1) % slides.length;
  goToSlide(currentIndex);
}

// CSS需配合以下样式:
// .slider { display: flex; transition: transform 0.5s ease; }
// .slide { width: 100%; flex-shrink: 0; }

实现带有按钮控制的图片切换

添加前进和后退按钮控制图片切换:

const prevBtn = document.getElementById('prev');
const nextBtn = document.getElementById('next');
const images = document.querySelectorAll('.gallery img');
let currentImg = 0;

function updateGallery() {
  images.forEach((img, index) => {
    img.style.display = index === currentImg ? 'block' : 'none';
  });
}

prevBtn.addEventListener('click', () => {
  currentImg = (currentImg - 1 + images.length) % images.length;
  updateGallery();
});

nextBtn.addEventListener('click', () => {
  currentImg = (currentImg + 1) % images.length;
  updateGallery();
});

updateGallery();

使用Intersection Observer实现懒加载切换

对于大量图片,可以使用Intersection Observer API实现懒加载:

const observer = new IntersectionObserver((entries) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      const img = entry.target;
      img.src = img.dataset.src;
      observer.unobserve(img);
    }
  });
}, {threshold: 0.1});

document.querySelectorAll('img[data-src]').forEach(img => {
  observer.observe(img);
});

这些方法可以根据具体需求进行组合和调整,实现不同风格的图片切换效果。

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

相关文章

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…