当前位置:首页 > JavaScript

js实现大小图

2026-04-07 15:44:12JavaScript

使用 JavaScript 实现大小图切换

方法一:通过修改 src 属性切换图片

// HTML 结构示例
// <img id="myImage" src="small.jpg" onclick="toggleImage()">

function toggleImage() {
  const img = document.getElementById('myImage');
  if (img.src.includes('small.jpg')) {
    img.src = 'large.jpg';
  } else {
    img.src = 'small.jpg';
  }
}

方法二:使用 CSS 控制显示/隐藏

// HTML 结构示例
// <img id="smallImg" src="small.jpg" onclick="showLarge()">
// <img id="largeImg" src="large.jpg" style="display:none;" onclick="hideLarge()">

function showLarge() {
  document.getElementById('smallImg').style.display = 'none';
  document.getElementById('largeImg').style.display = 'block';
}

function hideLarge() {
  document.getElementById('largeImg').style.display = 'none';
  document.getElementById('smallImg').style.display = 'block';
}

方法三:使用类名切换实现动画效果

// CSS 示例
// .small { width: 100px; transition: all 0.3s; }
// .large { width: 300px; }

// HTML 结构示例
// <img id="zoomImage" class="small" src="image.jpg" onclick="zoomImage()">

function zoomImage() {
  const img = document.getElementById('zoomImage');
  img.classList.toggle('small');
  img.classList.toggle('large');
}

方法四:使用背景图切换

js实现大小图

// HTML 结构示例
// <div id="imageContainer" style="width:100px;height:100px;background-image:url('small.jpg')" onclick="changeBgImage()"></div>

function changeBgImage() {
  const container = document.getElementById('imageContainer');
  if (container.style.backgroundImage.includes('small.jpg')) {
    container.style.backgroundImage = "url('large.jpg')";
    container.style.width = '300px';
    container.style.height = '300px';
  } else {
    container.style.backgroundImage = "url('small.jpg')";
    container.style.width = '100px';
    container.style.height = '100px';
  }
}

实现缩略图画廊效果

// HTML 结构示例
/*
<div class="thumbnail-container">
  <img src="thumb1.jpg" onclick="showLarge('full1.jpg')">
  <img src="thumb2.jpg" onclick="showLarge('full2.jpg')">
</div>
<div id="largeViewContainer">
  <img id="largeImage">
</div>
*/

function showLarge(imageUrl) {
  document.getElementById('largeImage').src = imageUrl;
  document.getElementById('largeViewContainer').style.display = 'block';
}

// 可添加关闭大图功能
function closeLarge() {
  document.getElementById('largeViewContainer').style.display = 'none';
}

使用事件委托优化性能

// HTML 结构示例
/*
<div id="gallery">
  <img data-small="small1.jpg" data-large="large1.jpg" src="small1.jpg">
  <img data-small="small2.jpg" data-large="large2.jpg" src="small2.jpg">
</div>
*/

document.getElementById('gallery').addEventListener('click', function(e) {
  if (e.target.tagName === 'IMG') {
    const img = e.target;
    const currentSrc = img.src;
    img.src = currentSrc.includes(img.dataset.small) 
      ? img.dataset.large 
      : img.dataset.small;
  }
});

响应式图片切换方案

// 根据屏幕宽度自动切换图片大小
function responsiveImages() {
  const images = document.querySelectorAll('[data-responsive]');
  const screenWidth = window.innerWidth;

  images.forEach(img => {
    img.src = screenWidth > 768 
      ? img.dataset.large 
      : img.dataset.small;
  });
}

// 监听窗口变化
window.addEventListener('resize', responsiveImages);
// 初始化执行
responsiveImages();

以上方法可根据实际需求选择或组合使用,实现不同场景下的图片大小切换效果。

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

相关文章

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…