当前位置:首页 > JavaScript

js实现大小图

2026-02-02 21:56:43JavaScript

实现大小图切换的 JavaScript 方法

监听点击事件切换图片 通过监听图片的点击事件,动态切换图片的 src 属性。预先准备好大图和小图的路径,点击时判断当前状态并切换。

const imgElement = document.getElementById('toggleImage');
let isLarge = false;

imgElement.addEventListener('click', function() {
    if (isLarge) {
        imgElement.src = 'small-image.jpg';
        imgElement.alt = '小图';
    } else {
        imgElement.src = 'large-image.jpg';
        imgElement.alt = '大图';
    }
    isLarge = !isLarge;
});

使用 CSS 控制显示隐藏 通过 JavaScript 切换 CSS 类,控制大图和小图的显示与隐藏。这种方法适合需要保持两张图同时存在于 DOM 中的场景。

js实现大小图

const smallImg = document.getElementById('smallImg');
const largeImg = document.getElementById('largeImg');

smallImg.addEventListener('click', function() {
    smallImg.classList.add('hidden');
    largeImg.classList.remove('hidden');
});

largeImg.addEventListener('click', function() {
    largeImg.classList.add('hidden');
    smallImg.classList.remove('hidden');
});

对应的 CSS 样式:

js实现大小图

.hidden {
    display: none;
}

动态加载图片 在需要时才加载大图,减少初始页面加载时间。点击小图时动态创建大图元素并插入到 DOM 中。

const smallImg = document.getElementById('smallImg');

smallImg.addEventListener('click', function() {
    const largeImg = document.createElement('img');
    largeImg.src = 'large-image.jpg';
    largeImg.alt = '大图';
    largeImg.className = 'large-image';

    smallImg.parentNode.replaceChild(largeImg, smallImg);

    largeImg.addEventListener('click', function() {
        largeImg.parentNode.replaceChild(smallImg, largeImg);
    });
});

使用背景图切换 通过改变元素的背景图来实现大小图切换。这种方法适用于使用背景图而非 <img> 标签的情况。

const imageContainer = document.getElementById('imageContainer');
let isLarge = false;

imageContainer.addEventListener('click', function() {
    if (isLarge) {
        imageContainer.style.backgroundImage = 'url(small-image.jpg)';
    } else {
        imageContainer.style.backgroundImage = 'url(large-image.jpg)';
    }
    isLarge = !isLarge;
});

注意事项

  • 确保图片路径正确,避免因路径错误导致图片无法加载。
  • 对于大图,考虑使用预加载技术,避免切换时出现延迟。
  • 如果图片比例不同,需要设置 widthheight 或使用 object-fit 保持显示一致。
  • 移动端注意添加触摸事件支持,如 touchstart

以上方法可根据具体需求选择使用,每种方法都有其适用场景。第一种方法适合简单的单图切换,第二种适合需要同时保留两张图的场景,第三种适合优化加载性能,第四种适合背景图应用。

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

相关文章

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js手势实现

js手势实现

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

js实现图片

js实现图片

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

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…