当前位置:首页 > jquery

jquery图片放大

2026-03-02 16:43:29jquery

jQuery 图片放大实现方法

使用 jQuery 插件实现图片放大

jQuery Zoom 是一个常用的图片放大插件,支持悬停或点击放大效果。

安装插件:

jquery图片放大

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

基本用法:

<img id="zoom-image" src="small.jpg" data-zoom-image="large.jpg"/>
<script>
$(document).ready(function(){
    $('#zoom-image').zoom();
});
</script>

自定义实现图片放大效果

创建放大镜效果:

jquery图片放大

<div class="image-container">
    <img src="product.jpg" id="target-image">
    <div class="zoom-lens"></div>
</div>
<div class="zoom-result"></div>

<style>
.image-container {
    position: relative;
}
.zoom-lens {
    position: absolute;
    border: 1px solid #d4d4d4;
    width: 100px;
    height: 100px;
    display: none;
}
.zoom-result {
    position: absolute;
    width: 300px;
    height: 300px;
    border: 1px solid #d4d4d4;
    display: none;
}
</style>

<script>
$(document).ready(function(){
    var lens = $(".zoom-lens");
    var result = $(".zoom-result");
    var img = $("#target-image");

    img.on("mousemove", function(e){
        var pos = $(this).offset();
        var x = e.pageX - pos.left;
        var y = e.pageY - pos.top;

        lens.css({
            "left": x - 50,
            "top": y - 50,
            "display": "block"
        });

        result.css({
            "background-image": "url('" + img.attr("src") + "')",
            "background-position": (-(x * 2 - 100)) + "px " + (-(y * 2 - 100)) + "px",
            "display": "block"
        });
    });

    img.on("mouseleave", function(){
        lens.hide();
        result.hide();
    });
});
</script>

响应式图片放大解决方案

使用 jQuery 和 CSS 实现响应式放大:

$('.zoomable-image').on('click', function() {
    var $img = $(this);
    var originalSrc = $img.attr('src');

    $('body').append(
        '<div class="zoom-overlay">' +
        '<img src="' + originalSrc + '" class="zoomed-image">' +
        '<span class="close-zoom">×</span>' +
        '</div>'
    );

    $('.close-zoom').on('click', function() {
        $('.zoom-overlay').remove();
    });
});

<style>
.zoom-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.9);
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
}
.zoomed-image {
    max-width: 90%;
    max-height: 90%;
}
.close-zoom {
    position: absolute;
    top: 20px;
    right: 20px;
    color: white;
    font-size: 30px;
    cursor: pointer;
}
</style>

移动端触摸放大实现

针对移动设备的双指缩放:

$('#touch-image').on('touchstart', function(e) {
    if (e.originalEvent.touches.length === 2) {
        initialDistance = getTouchDistance(e);
    }
});

$('#touch-image').on('touchmove', function(e) {
    if (e.originalEvent.touches.length === 2) {
        e.preventDefault();
        var currentDistance = getTouchDistance(e);
        var scale = currentDistance / initialDistance;
        $(this).css('transform', 'scale(' + scale + ')');
    }
});

function getTouchDistance(e) {
    var touch1 = e.originalEvent.touches[0];
    var touch2 = e.originalEvent.touches[1];
    return Math.hypot(
        touch2.pageX - touch1.pageX,
        touch2.pageY - touch1.pageY
    );
}

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

相关文章

vue实现图片轮播

vue实现图片轮播

Vue 实现图片轮播的方法 使用第三方库(推荐) 安装 vue-awesome-swiper 库,这是基于 Swiper 的 Vue 封装: npm install swiper vue-aweso…

vue实现组件循环图片

vue实现组件循环图片

Vue 实现组件循环图片的方法 在 Vue 中实现组件循环图片通常可以通过 v-for 指令结合动态数据绑定完成。以下是几种常见的实现方式: 使用静态图片路径数组 假设有一组本地图片路径,可以通过数…

jquery和vue的区别

jquery和vue的区别

核心设计理念 jQuery是一个基于DOM操作的轻量级JavaScript库,主要用于简化HTML文档遍历、事件处理、动画设计等任务。它采用命令式编程风格,需要手动操作DOM元素。 Vue是一个渐进…

jquery 插入html

jquery 插入html

jQuery 插入 HTML 的方法 jQuery 提供了多种方法来动态插入 HTML 内容到 DOM 中。以下是几种常用的方法: append() 将内容插入到选定元素的内部末尾。 $("#…

jquery 元素

jquery 元素

jQuery 元素选择与操作 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。以下是 jQuery 中常用的元素选择与操作方法…

jquery添加

jquery添加

jQuery 添加元素的方法 在jQuery中,添加元素到DOM有多种方式,可以根据需求选择合适的方法。 append() 将内容插入到选定元素的内部末尾处。 $("#container").ap…