电商系统 活跃维护

react-image-magnify

ethanselzer/react-image-magnify

为购物网站设计的响应式图片放大组件。

662
Stars 标星
162
Forks 分支
10
Watchers 关注
118
Open Issues
JavaScript
主要语言
MIT
开源协议
16.1 MB
仓库大小
2 年前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:ethanselzer/react-image-magnify
git clone https://github.com/ethanselzer/react-image-magnify.git
git clone git@github.com:ethanselzer/react-image-magnify.git
README.md master

英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。

react-图片放大

用于触摸和鼠标的响应式 React 图片放大组件。

为购物网站产品详情设计。

功能包括:

  • 原地和并排图像放大
  • 正负空间导向镜选项
  • 交互提示
  • 可配置的放大图像尺寸
  • 可选的放大图像外部渲染
  • 悬停意图
  • 长按手势
  • 渐隐过渡
  • 基本 react-slick 轮播支持

状态

演示

请访问 react-image-magnify 演示网站

在 CodePen 上 实时实验 react-image-magnify。使用 “更改视图” 按钮选择编辑模式或不同的布局选项。使用 “Fork” 按钮保存您的更改。

安装

npm install react-image-magnify

使用

如果您从 v1x 升级到 v2x,请参阅发行说明。

import ReactImageMagnify from 'react-image-magnify';
...
<ReactImageMagnify {...{
    smallImage: {
        alt: 'Wristwatch by Ted Baker London',
        isFluidWidth: true,
        src: watchImg300
    },
    largeImage: {
        src: watchImg1200,
        width: 1200,
        height: 1800
    }
}} />
...

在示例项目中查看更多使用示例。

必需属性

属性 类型 默认值 描述
smallImage 对象 不适用 小图像信息。见下文的 小图像。
largeImage 对象 不适用 大图像信息。见下文的 大图像。

可选样式属性

属性 类型 默认值 描述
className 字符串 不适用 应用于根容器元素的 CSS 类。
style 对象 不适用 应用于根容器元素的样式。
imageClassName 字符串 不适用 应用于小图像元素的 CSS 类。
imageStyle 对象 不适用 应用于小图像元素的样式。
lensStyle 对象 不适用 应用于着色镜片的样式。
enlargedImageContainerClassName 字符串 不适用 应用于放大图像容器元素的 CSS 类。
enlargedImageContainerStyle 对象 不适用 应用于放大图像容器元素的样式。
enlargedImageClassName 字符串 不适用 应用于放大图像元素的 CSS 类。
enlargedImageStyle 对象 不适用 应用于放大图像元素的样式。

可选交互属性

属性 类型 默认值 描述
fadeDurationInMs 数字 300 放大图像淡入/淡出持续的毫秒数。
hoverDelayInMs 数字 250 延迟悬停触发的毫秒数。
hoverOffDelayInMs 数字 150 延迟悬停关闭触发的毫秒数。
isActivatedOnTouch 布尔 false 触摸时立即激活放大。可能影响滚动。
pressDuration 数字 500 延迟长按激活(长触摸)的毫秒数。
pressMoveThreshold 数字 5 长按激活期间允许的移动像素数。

可选行为属性

属性 类型 默认值 描述
enlargedImagePosition 字符串 旁边(触摸时为覆盖) 放大图像的位置。可以是“旁边”或“覆盖”。
enlargedImageContainerDimensions 对象 {width: '100%', height: '100%'} 指定放大图像容器的尺寸,作为具有宽度和高度属性的对象。值可以用百分比表示(例如 '150%')或数字表示(例如 200)。百分比基于小图像的尺寸。数字为像素。当 enlargedImagePosition 设置为 'over' 时(触摸输入的默认值),此设置不生效。
enlargedImagePortalId 字符串 不适用 通过指定目标元素的 id,将放大的图像渲染到您选择的 HTML 元素中。需要 React v16。默认情况下,触摸输入会被忽略 - 参见 isEnlargedImagePortalEnabledForTouch。
isEnlargedImagePortalEnabledForTouch 布尔值 false 指定门户渲染是否应对触摸输入生效。
hintComponent 功能 (提供的) 对组件类或函数组件的引用。提供了默认值。
shouldHideHintAfterFirstActivation 布尔值 true 仅在第一次交互开始之前显示提示。
isHintEnabled 布尔型 false 启用提示功能。
hintTextMouse 字符串 悬停以放大 鼠标提示文本。
hintTextTouch 字符串 长按缩放 触摸提示文本。
shouldUsePositiveSpaceLens 布尔值 false 指定一个正空间透镜以替代默认的负空间透镜。
镜头组件 功能 (提供) 指定自定义镜头组件。

小图像

{
    src: String, (required)
    srcSet: String,
    sizes: String,
    width: Number, (required if isFluidWidth is not set)
    height: Number, (required if isFluidWidth is not set)
    isFluidWidth: Boolean, (default false)
    alt: String,
    onLoad: Function,
    onError: Function
}

有关响应式图像的更多信息,请参考以下资源:
响应式图像 101
响应式图像 - srcset 和 sizes 属性

大图

{
    src: String, (required)
    srcSet: String,
    sizes: String,
    width: Number, (required)
    height: Number, (required)
    alt: String, (defaults to empty string)
    onLoad: Function,
    onError: Function
}

支持

请提交一个问题。

示例项目

git clone https://github.com/ethanselzer/react-image-magnify.git
cd react-image-magnify
npm install
npm run build
cd example
yarn
yarn start

如果您的默认浏览器未自动启动,请打开一个新的浏览器窗口并访问 localhost:3000

开发

git clone https://github.com/ethanselzer/react-image-magnify.git
cd react-image-magnify
npm install
npm run #See available commands

示例项目 可在开发中使用。

要在进行更改时自动重新构建源代码,请运行 yarn run build-watch。

贡献

请使用 Github Flow 进行贡献。创建一个分支,添加提交,并 打开一个拉取请求。

归属

感谢以下社区成员提出问题和拉取请求。

@damien916 @colepatrickturner @andreatosatto90 @nathanziarek @hombrew @smashercosmo @sk1e @vidries @ionutzp @sbloedel @spiderbites @Akarshit @eddy20vt @evannoronha @benjaminadk @nilsklimm @m4recek @yaser-ali-vp @carlgunderson @tojvan @kskonecka @Coriou

你太棒了!✨💫

许可证

麻省理工学院

本站来源与版权声明
  • 本文标题:react-image-magnify - 为购物网站设计的响应式图片放大组件
  • 本文链接:https://www.cn121.com/shop/ethanselzer-react-image-magnify.html
  • 原项目:ethanselzer/react-image-magnify 版权归原作者 ethanselzer 及贡献者所有
  • 收录信息:本站于 2026-10-08 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 ethanselzer/react-image-magnify。
  • 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。