当前位置:首页 > 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
分享给朋友:

相关文章

jquery 之家

jquery 之家

jQuery 之家相关资源 jQuery 之家是一个提供 jQuery 插件、教程和代码示例的中文资源网站。以下是关于 jQuery 之家的一些有用信息: 网站内容 提供丰富的 jQuery 插件…

jquery 添加

jquery 添加

jQuery 添加元素的方法 动态添加 HTML 内容 使用 append()、prepend()、after() 或 before() 方法可以在 DOM 中插入新元素。 // 在元素内部末尾…

jquery代码

jquery代码

以下是关于jQuery代码的常见用法和示例,涵盖基础操作、事件处理、DOM操作等核心功能: 基础语法 jQuery通过$()函数选择元素,支持CSS选择器语法: // 选择所有<p>元…

jquery样式

jquery样式

jQuery 样式操作基础 jQuery 提供了多种方法来操作 HTML 元素的样式,包括直接修改 CSS 属性、添加/移除类名等。以下是常见的样式操作方法: 修改 CSS 属性 使用 css()…

jquery 菜单

jquery 菜单

jQuery 菜单实现方法 使用 jQuery 创建动态菜单可以通过多种方式实现,以下是几种常见的方法: 基于 HTML 和 CSS 的基础结构 创建菜单的 HTML 结构通常使用无序列表 <…

jquery 弹出

jquery 弹出

jQuery 弹出窗口实现方法 jQuery 可以通过多种方式实现弹出窗口效果,以下是几种常见的方法: 使用 jQuery UI Dialog jQuery UI 提供了一个 Dialog 组件,可…