如何使用jquery放大图像

2024-03-16

我只是想知道如何使用 jquery 放大图片,

像这个网站这样的东西,

当您单击大图像时,它会放大,您可以移动光标并在放大时查看图片的其他部分,

如果有人可以向我展示链接或将我引向正确的方向,我将不胜感激。


它们不会放大,真正发生的是,当您单击“缩放”文本时,div 内的图像将被该图像的更大版本替换。并将溢出设置为隐藏。

当您移动光标时,使用一些巧妙的 JavaScript 和 DOM 处理,图像会相应地相对移动,从而创建实际放大图片的效果。

我将尝试为您创建一个简单的示例。

EDIT

抱歉花了一段时间,但这里是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <title>Example</title>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(function() {
                var fullWidth = 864; // Width in pixels of full-sized image
                var fullHeight = 648; // Height in pixels of full-sized image
                var thumbnailWidth = 389;  // Width in pixels of thumbnail image
                var thumbnailHeight = 292;  // Height in pixels of thumbnail image

                // Set size of div
                $('#picture').css({
                        'width': thumbnailWidth+'px',
                        'height': thumbnailHeight+'px'
                });

                // Hide the full-sized picture
                $('#full').hide();

                // Toggle pictures on click
                $('#picture').click(function() {
                        $('#thumbnail').toggle();
                        $('#full').toggle();
                });

                // Do some calculations
                $('#picture').mousemove(function(e) {
                        var mouseX = e.pageX - $(this).attr('offsetLeft'); 
                        var mouseY = e.pageY - $(this).attr('offsetTop'); 

                        var posX = (Math.round((mouseX/thumbnailWidth)*100)/100) * (fullWidth-thumbnailWidth);
                        var posY = (Math.round((mouseY/thumbnailHeight)*100)/100) * (fullHeight-thumbnailHeight);

                        $('#full').css({
                                'left': '-' + posX + 'px',
                                'top': '-' + posY + 'px'
                        });
                });
        });
    </script>

    <style type="text/css">
        #picture {
                overflow: hidden;
                position: relative;
                border: 1px solid #000000;
        }

        #thumbnail {
                cursor: pointer;
        }

        #full {
                position: relative;
                cursor: crosshair;
        }
    </style>
</head>

<body>
    <div id="picture">
        <img alt="" id="thumbnail" src="http://img202.imageshack.us/img202/8403/93629325.jpg" />
        <img alt="" id="full" src="http://img111.imageshack.us/img111/4734/tbmecsekyellowflower.jpg" />
    </div>
</body>
</html>

您需要相应地调整缩略图和全尺寸图像的宽度和高度。但只需复制粘贴上面的内容即可查看 imageshack 上托管的图像示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用jquery放大图像 的相关文章

随机推荐

  • geopy.exc.GeocoderInsufficientPrivileges:HTTP 错误 403:禁止

    我尝试使用 geopy 获取纬度 经度 但它会抛出 http 403 禁止错误 from geopy geocoders import Nominatim geolocator Nominatim addr 350 5th Ave New
  • 反应事件目标父节点

    是否可以获取虚拟 DOM 上事件目标的父节点 在我的基本 React 组件中 我有一个从 onClick 事件触发的方法 我想获取父虚拟 DOM 节点属性 handleClick e The following code only give
  • 用浮点数初始化 NSArray?

    这是用浮点对象初始化 NSArray 的有效方法吗 NSArray fatArray NSArray arrayWithObjects NSNumber numberWithFloat 6 9 NSNumber numberWithFloa
  • Ruby on Rails:有哪些可用的报告和/或图表工具? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我刚刚开始使用 Ruby Rails 想知道 Rails 开发人员使用什么在 Rails 站点上提供报告
  • 结束对话 C# 机器人

    我正在用 C 构建一个聊天机器人 我希望在一些消息之后对话停止 但我不知道该怎么做 我已经设置了消息限制 并且我希望在达到此限制后不能再发送消息 有我的代码 private int NombreDeMessages protected ov
  • 是否有通用 I2C 命令来查看设备是否仍然存在于总线上?

    是否有通用的 I2C 命令来查看设备在初始化一次后是否仍然存在于总线上 例如 OLED 显示器 我问这个的原因是为了避免主程序由于库代码中存在无限循环而冻结 当设备断开连接时 例如 Wire 库 在 MCU 启动时 我想检查设备是否可用 并
  • python3请求使用quote而不是quote_plus

    我使用 Python 3 和requests http docs python requests org en master 用于查询 REST 服务的模块 库 看来请求默认使用urllib parse quote plus 对于 urle
  • 在后台接收蓝牙管理器通知

    我在我的应用程序中使用BluetoothManager私有框架 我想知道当应用程序处于后台时如何接收BluetoothManager通知 例如 在后台接收连接 断开连接的蓝牙通知 提前致谢 Use global notification e
  • 在 GridView 中通过分页维护排序

    我目前正在尝试编写代码 以便在更改 GridView 上的页面时保持排序首选项 我当前的代码运行良好 可以根据用户的排序选择对数据进行排序 但是当换页时 排序不起作用 我没有收到错误 而是收到未排序的结果 这是我的 aspx 代码
  • 如何使用sequelize 与postgres 进行日期比较

    我想删除日期在 20 分钟之前的所有记录 Postgres 或 Sequelize 对裸露的 javascript 不满意Date我提供的对象作为比较值 我在 postgres 9 6 数据库之上使用sequelize 4 37 有问题的列
  • Flask AttributeError:“HTMLString”对象没有属性“__call__”

    我创建了一个宏来处理表单错误 如下所示 macro render field with errors field p field label field kwargs safe if field errors p ul for error
  • R:如何将移动平均值应用于数据框中的列子集?

    我有一个数据框 training set 其中包含 83 个变量的 150 个观察值 我想用一些移动平均线来转换其中 82 个列 问题是结果最终只有 150 个数值 即 1 列 如何在数据中的每一列中单独应用移动平均函数并保持第 83 列不
  • “您的设备与此版本不兼容”

    我在 Play 商店中放置了一个应用程序 而我的朋友 在两台设备上运行 4 0 3 在尝试安装我的应用程序时收到以下消息 您的设备与此版本不兼容 一台设备允许安装 而另一台设备则不允许 我允许 API 3 15 并且两台设备都是 4 0 3
  • 向量子集性能:名称与索引

    如果我有一个向量v姓名 John Murray Lisa Mike Joe Ann 0 0832090 0 0475580 0 2797860 0 1086225 0 0104590 0 0028250 时间复杂度是多少v Joe vers
  • 如何将PHP编译成操作码并在生产环境中运行?

    注意 这不是facebook最近的hiphop项目 我只是想把它转换成opcode not c c 现在还有解决办法吗 演示永远是最好的 您正在寻找的是PHP加速器 http en wikipedia org wiki PHP accele
  • 创建 Dockerfile - docker 在每个新构建上从头开始

    我正在尝试构建一个 dockerfile 迭代地添加行和测试 我的理解是 docker 将缓存已经构建的行 并从我添加的新行开始 情况似乎是 每次我在容器上调用 build 时 它只是从头开始构建 这是正常的吗 如果不是 我做错了什么 正如
  • REngine”不包含“SetDllDirectory”、“RDotNet”的定义

    My Code using System using System Collections Generic using System ComponentModel using System Data using System Drawing
  • Android 通过按钮打开相机

    我希望这不是一个重复的问题 但我正在制作一个应用程序 我想要一个按钮来打开相机应用程序 单独的默认 Android 相机 我怎样才能做到这一点 我知道有一个功能 intent setAction MediaStore ACTION IMAG
  • 在 Big Query 上向表中插入数据时出现 IO 异常

    我正在尝试在大查询的表中插入数据 我遵循了一些文档 我的最终代码如下所示 HttpTransport TRANSPORT new NetHttpTransport JsonFactory JSON FACTORY new JacksonFa
  • 如何使用jquery放大图像

    我只是想知道如何使用 jquery 放大图片 像这个网站这样的东西 当您单击大图像时 它会放大 您可以移动光标并在放大时查看图片的其他部分 如果有人可以向我展示链接或将我引向正确的方向 我将不胜感激 它们不会放大 真正发生的是 当您单击 缩