当前位置:首页 > jquery

jquery图片放大

2026-03-02 16:43:29jquery

jQuery 图片放大实现方法

使用 jQuery 插件实现图片放大

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

安装插件:

<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>

自定义实现图片放大效果

创建放大镜效果:

<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>

移动端触摸放大实现

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

jquery图片放大

$('#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
分享给朋友:

相关文章

网页设计制作css图片

网页设计制作css图片

CSS图片处理基础方法 在网页设计中,CSS可以控制图片的尺寸、位置、边框等样式属性。通过<img>标签或背景图方式引入图片后,使用CSS属性进行调整。 img { width: 1…

css3手工制作图片

css3手工制作图片

使用CSS3手工制作图片 CSS3可以通过各种属性如box-shadow、border-radius、gradient等来手工绘制简单的图形或图片效果。以下是几种常见的方法: 绘制圆形 通过bord…

jquery手册

jquery手册

jQuery手册概览 jQuery是一个快速、简洁的JavaScript库,简化了HTML文档遍历、事件处理、动画和Ajax交互。以下是核心功能和常用方法的分类整理。 核心方法 $(selector…

jquery文档

jquery文档

以下是关于 jQuery 文档的核心内容和资源整理,便于快速查阅和使用: jQuery 官方文档 官网地址:jQuery Official Documentation 内容分类:API 参考:包含所…

jquery方法

jquery方法

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

jquery文件

jquery文件

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