当前位置:首页 > jquery

jquery 放大镜

2026-02-03 14:47:21jquery

以下是实现 jQuery 放大镜效果的两种常见方法,适用于商品图片局部放大等场景:

基础实现方法

准备 HTML 结构,包含原图容器和放大镜显示区域:

<div class="container">
  <img src="small.jpg" class="small-img">
  <div class="zoom-lens"></div>
</div>
<div class="zoom-result"></div>

CSS 样式设置:

.zoom-lens {
  position: absolute;
  width: 100px;
  height: 100px;
  background: rgba(255, 255, 255, 0.3);
  border: 1px solid #ccc;
  cursor: none;
  display: none;
}
.zoom-result {
  position: absolute;
  width: 400px;
  height: 400px;
  overflow: hidden;
  display: none;
  border: 1px solid #ddd;
}

jQuery 核心逻辑:

$(document).ready(function(){
  $(".container").on("mousemove", function(e){
    const lens = $(".zoom-lens");
    const result = $(".zoom-result");
    const smallImg = $(".small-img");

    // 计算镜头位置
    const x = e.pageX - $(this).offset().left - lens.width()/2;
    const y = e.pageY - $(this).offset().top - lens.height()/2;

    // 边界检查
    const maxX = $(this).width() - lens.width();
    const maxY = $(this).height() - lens.height();

    lens.css({
      left: Math.min(Math.max(0, x), maxX),
      top: Math.min(Math.max(0, y), maxY),
      display: "block"
    });

    // 计算放大比例
    const ratioX = result.width() / lens.width();
    const ratioY = result.height() / lens.height();

    // 设置放大区域背景
    result.css({
      "background-image": "url('large.jpg')",
      "background-size": smallImg.width() * ratioX + "px " + smallImg.height() * ratioY + "px",
      "background-position": -x * ratioX + "px " + -y * ratioY + "px",
      display: "block"
    });
  });

  $(".container").on("mouseleave", function(){
    $(".zoom-lens, .zoom-result").hide();
  });
});

使用插件简化实现

引入 jQuery Zoom 插件(需先加载 jQuery):

<script src="https://cdn.jsdelivr.net/npm/jquery-zoom@1.7.21/jquery.zoom.min.js"></script>

初始化插件:

$('.small-img').zoom({
  url: 'large.jpg',  // 大图路径
  magnify: 2,       // 放大倍数
  on: 'hover'       // 触发方式
});

插件配置选项:

jquery 放大镜

  • target:指定放大镜显示容器
  • touch:启用触摸屏支持(默认 true)
  • duration:动画持续时间(毫秒)
  • onZoomIn/onZoomOut:回调函数

注意事项

  1. 大图尺寸建议至少是原图的 2 倍以上以保证清晰度
  2. 移动端适配需要添加触摸事件支持
  3. 性能优化建议对大图进行预加载
  4. 复杂场景可考虑使用 WebGL 实现更流畅的放大效果

两种方法各有优势:基础实现更灵活可控,插件方案开发效率更高。实际选择应根据项目需求和性能要求决定。

标签: 放大镜jquery
分享给朋友:

相关文章

jquery.js

jquery.js

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

jquery选择器

jquery选择器

jQuery 选择器基础 jQuery 选择器用于选取 DOM 元素,基于 CSS 选择器语法扩展。通过 $() 或 jQuery() 函数调用,返回匹配元素的集合。 常见选择器类型 元素选择…

jquery实现

jquery实现

以下是关于jQuery实现的常见应用场景及方法,分为核心功能模块说明: DOM操作 使用$()选择器获取元素后,可通过链式调用方法操作DOM: $('#element').html('新内容').…

jquery方法

jquery方法

jQuery 核心方法 $() 或 jQuery() 是核心选择器方法,用于获取 DOM 元素或创建 jQuery 对象。支持 CSS 选择器、DOM 元素或 HTML 字符串。 $('#id'…

jquery文件

jquery文件

jQuery文件获取与使用 jQuery是一个快速、简洁的JavaScript库,简化了HTML文档遍历、事件处理、动画和Ajax交互。以下是获取和使用jQuery文件的方法。 下载jQuery文件…

jquery函数

jquery函数

jQuery 函数概述 jQuery 是一个快速、简洁的 JavaScript 库,通过封装原生 JavaScript 功能,简化 DOM 操作、事件处理、动画和 AJAX 等任务。其核心函数 $()…