当前位置:首页 > JavaScript

js实现大小图

2026-03-15 22:19:42JavaScript

实现大小图切换的JavaScript方法

通过监听用户交互(如点击或悬停)动态切换图片的显示尺寸。以下是一个基础实现示例:

// 获取DOM元素
const smallImg = document.querySelector('.small-img');
const largeImg = document.querySelector('.large-img');

// 点击小图显示大图
smallImg.addEventListener('click', function() {
    largeImg.style.display = 'block';
    smallImg.style.display = 'none';
});

// 点击大图返回小图
largeImg.addEventListener('click', function() {
    smallImg.style.display = 'block';
    largeImg.style.display = 'none';
});

使用CSS过渡动画增强效果

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

.img-container {
    transition: all 0.3s ease;
}
.large-img {
    transform: scale(0);
    opacity: 0;
}
.large-img.active {
    transform: scale(1);
    opacity: 1;
}

对应JavaScript修改:

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

largeImg.addEventListener('click', function() {
    largeImg.classList.remove('active');
});

响应式图片切换方案

根据屏幕尺寸自动切换图片大小:

function responsiveImageSwitch() {
    const imgElement = document.getElementById('responsive-img');
    if (window.innerWidth < 768) {
        imgElement.src = 'small-image.jpg';
    } else {
        imgElement.src = 'large-image.jpg';
    }
}

// 初始调用和窗口变化监听
responsiveImageSwitch();
window.addEventListener('resize', responsiveImageSwitch);

使用Intersection Observer实现懒加载

当图片进入视口时加载大图版本:

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

document.querySelectorAll('.lazy-img').forEach(img => {
    observer.observe(img);
});

HTML结构示例:

js实现大小图

<img class="lazy-img" src="small-placeholder.jpg" data-large-src="large-image.jpg" alt="示例图片">

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

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…