简介

react-image-previewer

一款超精致的 React 图片预览组件

触摸手势

反馈动画

图像自适应

自定义元素

键盘导航

基于 TypeScript

轻量体积

更多...

react-image-previewer 拥有无与伦比的预览交互体验:从打开图像开始,每一帧的动画、细节和交互都经过了精心设计与反复调试,媲美原生图片预览的效果。

概览

import { PhotoProvider, PhotoView } from 'react-image-previewer';
 
function App() {
  return (
    <PhotoProvider>
      <PhotoView src="/1.jpg">
        <img src="/1-thumbnail.jpg" alt="" />
      </PhotoView>
    </PhotoProvider>
  );
}

该示例中,react-image-previewer 提供了两个组件: PhotoProviderPhotoView。以 PhotoProvider为界限,里面所有的 PhotoView 图片会按照运行顺序提取为一组图片预览画廊。当某个 <img /> 被点击,则会定位到指定的图片并打开预览。

💡

注意:基本使用不会携带任何工具栏UI和按钮。

工具栏相关UI

react-image-previewer 提供了两套完整的工具栏UI组件,可以通过 react-image-previewer/ui 导入。

使用 overlayRender 属性可以渲染任意的覆盖物。例如,我们可以使用 SlideToolbarCloseButton 来实现一个简单的工具栏。

更多UI配置

import { PhotoProvider, PhotoView } from 'react-image-previewer';
import { SlideToolbar, CloseButton } from 'react-image-previewer/ui';
 
function App() {
  return (
    <PhotoProvider overlayRender={props => {
        const { onClose } = props
        return (
          <>
            <SlideToolbar {...props} />
            <CloseButton onClick={onClose} />
          </>
        )
      }}>
      <PhotoView src="/1.jpg">
        <img src="/1-thumbnail.jpg" alt="" />
      </PhotoView>
    </PhotoProvider>
  );
}

特性

它拥有非常完善的细节与特性:

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

关于

starsversiondownloadslicensemingzip

react-photo-viewMinJieLiu (opens in a new tab) 创建,react-image-previewer fork 自react-photo-view (opens in a new tab) 然后由 YiYang (opens in a new tab) 创建,并提供此分支的维护

😄
点个 Star 不迷路 👉

去 Star

感谢支持!

License

Apache-2.0 © MinJieLiu (opens in a new tab)