当前位置:首页 > 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之家的主要内容和资源: 网站内容 提供丰…

vue图片实现多选

vue图片实现多选

Vue图片多选实现方法 基础实现方案 使用v-model绑定数组配合input[type="checkbox"]实现多选功能。创建图片列表数据时,每个图片对象应包含唯一标识符: data() {…

jquery 图片

jquery 图片

jQuery 图片操作 jQuery 提供了多种方法来操作图片,包括加载、显示、隐藏、调整尺寸等。以下是一些常见的图片操作方法: 动态加载图片 使用 attr() 方法可以动态修改图片的 src…

jquery 添加

jquery 添加

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

jquery遍历

jquery遍历

jQuery遍历方法 jQuery提供了多种遍历DOM元素的方法,可以根据需求选择合适的方式操作元素集合。 each()方法 each()方法用于遍历jQuery对象中的每个元素,并对每个元素执行…

jquery li

jquery li

jQuery 操作 <li> 元素的方法 jQuery 提供了多种方法来操作 HTML 中的 <li> 元素(列表项)。以下是常见的使用场景和示例: 选择 <li&…