react-photo-view 的介绍、安装、使用。

目录

基本介绍

安装 

使用 


基本介绍

react-photo-view 是一个基于 React 的图片查看器组件,用于在网页上展示和浏览图片。该组件提供了用户友好的界面和交互,可以轻松地在应用程序中集成并使用。 

  • 支持触摸手势,拖动/平移/物理效果滑动,双指指定位置放大/缩小
  • 全方面动画衔接,打开/关闭/回弹/触边,顺其自然的交互效果
  • 图像自适应,以一个合适的最初呈现大小,并根据调整自适应
  • 支持自定义如 <video /> 或任意 HTML 元素的预览
  • 键盘导航,完美适配桌面端
  • 支持自定义节点扩展,轻松实现全屏预览、旋转控制、图片介绍以及更多功能
  • 基于 typescript7KB Gzipped,支持服务端渲染
  • 简单易用的 API,上手零成本

安装 

在 React 项目目录运行以下命令:

pnpm:

pnpm i react-photo-view

yarn:

yarn add react-photo-view

或者用 npm:

npm install react-photo-view

使用 

//引入组件
import { PhotoProvider, PhotoView } from 'react-photo-view';

//引入css
import 'react-photo-view/dist/react-photo-view.css';

//使用

<PhotoProvider>
 <PhotoView src="/img/homepage/sourcecode/source_code_check.png">
  <img src="/img/homepage/sourcecode/source_code_check.png" />
 </PhotoView>
</PhotoProvider>

一些常用的PhotoView的相关属性 。

NameDescriptionTypeDefault Value
src图片地址string
render自定义渲染,优先级比 src 低(props: PhotoRenderParams) => React.ReactNode
overlay图片覆盖物React.ReactNode
width自定义渲染节点宽度number
height自定义渲染节点高度number
children子节点,一般为缩略图React.ReactElement
triggers触发打开图片的方式Array<"onClick" | "onDoubleClick">["onClick"]

其他的例如,添加过渡动画,自定义工具栏,长图模式等更多功能请参阅官方文档。

官方文档:

https://react-photo-view.vercel.app/docs/getting-startedicon-default.png?t=N7T8https://react-photo-view.vercel.app/docs/getting-started Github:
GitHub - MinJieLiu/react-photo-view: An exquisite React photo preview component.An exquisite React photo preview component. Contribute to MinJieLiu/react-photo-view development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/MinJieLiu/react-photo-viewNPMJS:

react-photo-view - npmAn exquisite React photo preview component. Latest version: 1.2.3, last published: a year ago. Start using react-photo-view in your project by running `npm i react-photo-view`. There are 65 other projects in the npm registry using react-photo-view.icon-default.png?t=N7T8https://www.npmjs.com/package/react-photo-view

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/230890.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【vtkWidgetRepresentation】第七期 vtkImplicitPlaneRepresentation

很高兴在雪易的CSDN遇见你 前言 本文分享vtkImplicitPlaneRepresentation源码剖析&#xff0c;及相关的实例&#xff0c;该接口主要用于切割交互&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一起…

利用lammps模拟不同压头半径对单晶铝纳米压痕的影响

2.1.问题描述 纳米压痕是确定金属材料特性的最广泛使用的方法之一。分子动力学&#xff08;MD&#xff09;模拟是一种强大的工具&#xff0c;可以研究纳米压痕过程中原子尺度上的材料行为&#xff0c;并深入了解材料的塑性变形。本工作采用单晶铝作为原材料&#xff0c;旨在为…

虾皮免费分析工具:了解市场趋势、优化产品和店铺运营

在如今竞争激烈的电商市场中&#xff0c;了解市场趋势、优化产品和店铺运营对于卖家来说至关重要。虾皮&#xff08;Shopee&#xff09;作为一家知名的电商平台&#xff0c;为卖家提供了一些免费的分析工具&#xff0c;帮助他们更好地了解市场情况并做出明智的决策。本文将介绍…

人工智能教程(三):更多有用的 Python 库

目录 前言 推荐 JupyterLab 入门 复杂的矩阵运算 其它人工智能和机器学习的 Python 库 前言 在本系列的上一篇人工智能教程&#xff08;二&#xff09;&#xff1a;人工智能的历史以及再探矩阵中&#xff0c;我们回顾了人工智能的历史&#xff0c;然后详细地讨论了矩阵。在…

导入PR的视频画面是黑屏的怎么办?

在现代视频编辑领域中&#xff0c;越来越多的人使用Adobe Premiere Pro来编辑和制作视频&#xff0c;但是在某些情况下&#xff0c;用户可能需要透明背景的视频进行创作&#xff0c;那么如何创作透明背景的视频呢&#xff1f; 要制作具有透明背景的视频&#xff0c;我们需要使…

深度探索Linux操作系统 —— 构建initramfs

系列文章目录 深度探索Linux操作系统 —— 编译过程分析 深度探索Linux操作系统 —— 构建工具链 深度探索Linux操作系统 —— 构建内核 深度探索Linux操作系统 —— 构建initramfs 文章目录 系列文章目录前言一、为什么需要 initramfs二、initramfs原理探讨三、构建基本的init…

在Windows 11中,至少有四种方法可以创建用户

本文介绍如何在Windows11上添加另一个用户(或多个用户)。 使用设置添加其他用户 这是创建新用户的“正常”方式。这是一个简单的过程,允许你添加Microsoft、本地或家庭帐户。 添加Microsoft或本地帐户 按照以下步骤将Microsoft帐户添加到Windows 11或创建新的本地用户。…

论文阅读:PointCLIP: Point Cloud Understanding by CLIP

CVPR2022 链接&#xff1a;https://arxiv.org/pdf/2112.02413.pdf 0、Abstract 最近&#xff0c;通过对比视觉语言预训练(CLIP)的零镜头学习和少镜头学习在2D视觉识别方面表现出了鼓舞人心的表现&#xff0c;即学习在开放词汇设置下将图像与相应的文本匹配。然而&#xff0c;…

实现手机扫码——扫描识别路由器参数

有个应用是批量自动检测无线路由器&#xff0c;检测前需要自动登录路由器的管理界面进行设置&#xff0c;如设置wifi参数、连接模式&#xff0c;或者恢复出厂设置等。进入管理界面的登录用户名是admin&#xff0c;密码则各不相同。此外也需要知道路由器的MAC地址&#xff0c;因…

Qt基础-程序打包发布方法

本文讲解Qt程序打包发布方法。 一、使用Qt自带的windeployqt 生成可运行的包 准备将Qt生成的exe拷入到单独的文件夹,并进行命名,本文命名为packDemorun,并将文件放到D盘(自己随意放置) 1、找到Qt自带的命令终端 2、启动命令终端 3、输入:cd /d D:\packDemorun,进入文…

质量工程化,交付快速化

质量和速度之间权衡让人很难取舍&#xff0c;而通过推进质量工程&#xff0c;以系统化的方式识别和优化系统痛点&#xff0c;可以帮助团队构建既快又好的精益软件生产系统。原文: Quality Engineered, Speed Delivered 所有人都想要更快的速度。 但需要解决复杂问题: 权衡质量会…

小程序时代的机遇:开发成功的知识付费平台

知识付费平台不仅为知识创作者提供了广阔的变现渠道&#xff0c;同时也为用户提供了更为个性化、精准的学习体验。本篇文章&#xff0c;小编将为大家讲解知识付费小程序开发相关的知识。 一、小程序时代的背景 知识付费作为小程序领域中的“大热门”&#xff0c;有着非常高的…

整数在内存中的存储

整数和浮点数在内存中的存储方式是不一样的&#xff0c;今天&#xff0c;我们来具体学习一下 文章目录 整数在内存中的存储浮点数在内存中的存储 整数在内存中的存储 我们在之前就已经了解过了整数有原码&#xff0c;反码&#xff0c;补码的形式&#xff0c;这三种方式都是二进…

springboot 集成Dubbo2.7.8 ,连接zookeeper 提示错误 zookeeper not connected

Dubbo 连接zookeeper时&#xff0c;提示“zookeeper not connected” java.lang.IllegalStateException: zookeeper not connectedat org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient.<init>(CuratorZookeeperClient.java:83) ~[dubbo-2.7.8.jar:2.…

【每周一测】Java阶段四第二周学习

目录 1、在MyBatis中&#xff0c;当实体类中的属性名和表中的字段名不一样&#xff0c;除了&#xff08; &#xff09;都可以实现属性和数据的映射。 2、下列数组定义及赋值&#xff0c;错误的是&#xff08; &#xff09; 3、关于会话跟踪以下说法错误的&#xff08; &…

C++ Qt开发:Qt的安装与配置

Qt是一种C编程框架&#xff0c;用于构建图形用户界面&#xff08;GUI&#xff09;应用程序和嵌入式系统。Qt由Qt公司&#xff08;前身为Nokia&#xff09;开发&#xff0c;提供了一套跨平台的工具和类库&#xff0c;使开发者能够轻松地创建高效、美观、可扩展的应用程序。其被广…

多线程(进阶一:锁策略)

一、乐观锁和悲观锁 二、轻量级锁和重量级锁 三、自旋锁和挂起等待锁 四、普通互斥锁和读写锁 五、公平锁和非公平锁 六、可重入锁和不可重入锁 七、synchronized和Linux的mutex锁的简单比较 八、synchronized的自适应 一、乐观锁和悲观锁 乐观锁&#xff1a;在加锁之前…

启动游戏出现concrt140.dll错误的8种解决方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是找不到concrt140.dll文件。这个错误通常会导致程序无法正常运行&#xff0c;给用户带来困扰。本文将介绍找不到concrt140.dll无法继续执行代码的8个方法&#xff0c;同时探讨concrt140.dll丢…

【活动】内容运营活动,你做对了吗?

内容运营活动&#xff0c;首先应该确认本次活动的主题&#xff0c;明确目标受众&#xff0c;分析这类用户的使用场景&#xff0c;感兴趣的话题等&#xff0c;结合市场的热点&#xff0c;探讨活动的形式&#xff0c;过程节点&#xff0c;活动奖励等内容&#xff08;头脑风暴形式…

Unity打包到Webgl平台以及遇到的问题

Unity打包到Webgl平台以及遇到的问题 参考网站 Unity打包WebGL的全过程及在打包和使用过程中会遇到的问题(本地测试)-CSDN博客 unity打包到Webgl 并配置能正常运行 这里我用的是Unity2022.3.3f1c1版本 有两种方法 1、配置本地web服务 2、安装vsCode>添加插件LiveServe…