npm 包 react-image-lightbox-rotate 使用教程

阅读时长 42 分钟读完

简介

react-image-lightbox-rotate 是一个基于 React 的图片浏览组件,它支持图片预览、旋转、缩放、拖动等操作,提供了更好的用户体验和视觉效果。本文将介绍如何使用该 npm 包,并给出一些示例代码和指导意义,提供给前端开发者参考和学习。

安装

使用 npm 命令可轻松安装 react-image-lightbox-rotate

使用

以下是该组件最基本的使用方法:

-- -------------------- ---- -------
------ ------ - -------- - ---- --------
------ ------------------- ---- ------------------------------

----- ------ - -
  -
    ---- ---------------------
    ------ -----
    ------- ----
  --
  -
    ---- ---------------------
    ------ -----
    ------- ----
  --
--

-------- ----- -
  ----- -------- ---------- - ----------------
  ----- ------- --------- - ------------

  ------ -
    --
      ------- ----------- -- --------------------- -----------------
      --------------------
        ---------------
        ---------------
        ----------- -- -----------------
        --------------------
        -------------------------------
      --
    ---
  --
-

------ ------- ----

该示例中,首先导入组件,然后创建一个包含两个图片的数组,它们包含了图片的路径、宽度和高度信息。接着,在 App 组件中,定义两个状态 isOpenindex,前者表示灯箱是否打开,后者表示当前选中的图片索引。在点击 “Open Lightbox” 按钮时,将 isOpen 状态设为 true,从而打开灯箱。最后,使用 ImageLightboxRotate 组件,并将图片数组、状态、回调函数作为 props 传入。

除了基本用法,该组件还提供了一些可选的 props 和回调函数,下面将逐一介绍。

props

prop 类型 必须 描述
images Array<object> 图片数组,每个元素包含以下字段:
- src (string):图片路径 (必须)
- width (number):图片宽度 (可选)
- height (number):图片高度 (可选)
isOpen boolean 灯箱是否打开
onClose function 关闭灯箱的回调函数
currentIndex number 当前选中的图片索引
onCurrentIndexChange function 选中图片改变时的回调函数
imageLoadErrorMessage string 图片加载失败时的错误消息
imageLoadErrorHandler function 图片加载失败时的回调函数
toolbarButtons Array<element> 工具栏自定义按钮,需传入 React 元素列表
renderHeader function 自定义头部,在默认头部上覆盖内容
renderFooter function 自定义底部,在默认底部上覆盖内容
reactModalStyle object React Modal 样式,需传入样式对象
wrapperClassName string 包含组件的容器类名
enableRotate boolean 是否启用图片旋转操作
enableZoom boolean 是否启用图片缩放操作
enablePanning boolean 是否启用图片拖动操作
imageLoadOnClick boolean 是否在点击图片时加载,而不是在打开灯箱时加载。默认为 false
discourageDownloads boolean 是否禁止下载图片。默认为 false
discourageClose boolean 是否禁止关闭灯箱。默认为 false
reactModalProps object React Modal props,传入 isOpenonClosestyle 时不需要这个 prop。
leftArrowTitle string 向左箭头的标题。默认为 “Previous (Left arrow key)”
rightArrowTitle string 向右箭头的标题。默认为 “Next (Right arrow key)”
zoomInTitle string 放大按钮的标题。默认为 “Zoom in (+)”
zoomOutTitle string 缩小按钮的标题。默认为 “Zoom out (-)”
closeTitle string 关闭按钮的标题。默认为 “Close (Esc)”
fullscreenTitle string 全屏按钮的标题。默认为 “Toggle fullscreen (F)”
rotateLeftTitle string 左旋转按钮的标题。默认为 “Rotate left (L)”
rotateRightTitle string 右旋转按钮的标题。默认为 “Rotate right (R)”
zoomInShortcut string 放大按钮的快捷键。默认为 CTRL++
zoomOutShortcut string 缩小按钮的快捷键。默认为 CTRL+-
nextSrcShortcut string 下一张图片的快捷键。默认为 Right arrow
prevSrcShortcut string 上一张图片的快捷键。默认为 Left arrow
closeShortcut string 关闭灯箱的快捷键。默认为 Esc
zoomEnabled boolean 是否启用鼠标滚轮缩放图片。默认为 true
moveSpeed number 图片移动速度。默认值为 0.025。
moveSpeedByWheel number 鼠标滚轮移动时的速度。默认值为 0.025。
clickOutsideToClose boolean 在灯箱外点击时是否关闭灯箱。默认为 true
prevSrcButton element 上一张图片的按钮,需传入一个 React 元素。默认为一个箭头。
nextSrcButton element 下一张图片的按钮,需传入一个 React 元素。默认为一个箭头。
zoomInButton element 放大按钮,需传入一个 React 元素。默认为 “+”。
zoomOutButton element 缩小按钮,需传入一个 React 元素。默认为 “-”。
closeButton element 关闭按钮,需传入一个 React 元素。默认为一个 X 号。
fullscreenButton element 全屏按钮,需传入一个 React 元素。默认为 “F”。
rotateLeftButton element 左旋转按钮,需传入一个 React 元素。默认为一个箭头。
rotateRightButton element 右旋转按钮,需传入一个 React 元素。默认为一个箭头。

回调函数

回调函数 参数 描述
onClose 关闭灯箱时的回调函数
onCurrentIndexChange index 选中图片改变时的回调函数,参数 index 表示当前选中的图片索引
onMovePrevRequest index 请求移动到上一张图片时的回调函数,参数 index 表示当前选中的图片索引。如果删除该参数,ImageLightboxRotate 组件将禁用向左滚动的快捷键
onMoveNextRequest index 请求移动到下一张图片时的回调函数,参数 index 表示当前选中的图片索引。如果删除该参数,ImageLightboxRotate 组件将禁用向右滚动的快捷键
onRotateLeftRequest index 请求向左旋转图片时的回调函数,参数 index 表示当前选中的图片索引。如果删除该参数,ImageLightboxRotate 组件将禁用图像旋转功能
onRotateRightRequest index 请求向右旋转图片时的回调函数,参数 index 表示当前选中的图片索引。如果删除该参数,ImageLightboxRotate 组件将禁用图像旋转功能
onZoomInRequest event 请求放大图片时的回调函数,参数 event 为鼠标事件
onZoomOutRequest event 请求缩小图片时的回调函数,参数 event 为鼠标事件
onAfterOpen 打开灯箱时的回调函数
onBeforeClose 关闭灯箱前的回调函数
onImageLoadError event 图片加载失败时的回调函数,参数 event 为事件对象,其中包含了当前加载失败的图片对象
onImageLoad event 图片加载成功时的回调函数,参数 event 为事件对象,其中包含了当前加载成功的图片对象
onImageLoadStart event 图片开始加载时的回调函数,参数 event 为事件对象,其中包含了当前开始加载的图片对象
onClickImage event 单击图片时的回调函数,参数 event 为鼠标事件
onClickNext event 点击下一张图片的回调函数,参数 event 为鼠标事件
onClickPrev event 点击上一张图片的回调函数,参数 event 为鼠标事件
onClickThumbnail index 点击缩略图的回调函数,参数 index 表示当前选中的图片索引
onDoubleClickThumbnail index 双击缩略图的回调函数,参数 index 表示当前选中的图片索引
onMouseEnter event 鼠标进入灯箱时的回调函数,参数 event 为鼠标事件
onMouseLeave event 鼠标离开灯箱时的回调函数,参数 event 为鼠标事件
onZoomChange zoom 缩放比例改变时的回调函数,参数 zoom 表示当前缩放比例
onImageClick imageSrc 单击图片时的回调函数,参数 imageSrc 表示当前选中的图片路径
onButtonElementClick id 点击按钮元素时的回调函数,参数 id 表示当前按钮的 ID

示例

下面是一些可能有帮助的示例。

自定义按钮

-- -------------------- ---- -------
------ ------ - --------- ------ - ---- --------
------ ------------------- ---- ------------------------------
------ - ----------- ---------- ---------- - ---- -----------------

----- ------ - -
  - ---- --------------------- ------ ----- ------- --- --
  - ---- --------------------- ------ ----- ------- --- --
  - ---- --------------------- ------ ----- ------- --- --
--

-------- ----- -
  ----- -------- ---------- - ----------------
  ----- ------- --------- - ------------
  ----- -------- - -------------

  ----- ---------------- - -- -- -
    -- ------------------ -
      ------------------------------
    -
  --

  ----- ----------------- - -- -- -
    -- ------------------ -
      -------------------------------
    -
  --

  ----- -------------- - -- -- -
    ----- --- - ------------------
    ----- ---- - ----------------------------
    --------------------------- ----------
    ------------------------- -----
    -------------
  --

  ----- -------------- - -
    ------- ----------------- ---------------------------
      ------ ----
    ----------
    ------- ------------------ ----------------------------
      ------ -----
    ----------
    ------- -------------- -------------------------
      ----------- --
    ----------
  --

  ------ -
    --
      ------- ----------- -- --------------------- -----------------
      --------------------
        ---------------
        ---------------
        ----------- -- -----------------
        --------------------
        -------------------------------
        -------------------------------
        --------------
        -------------------
        -----------------
        --------------------
        ----------------------
      --
    ---
  --
-

------ ------- ----

渲染自定义元素

-- -------------------- ---- -------
------ ------ - -------- - ---- --------
------ ------------------- ---- ------------------------------

----- ------ - -
  -
    ---- ---------------------
    ------ -----
    ------- ----
  --
  -
    ---- ---------------------
    ------ -----
    ------- ----
  --
--

-------- ----- -
  ----- -------- ---------- - ----------------
  ----- ------- --------- - ------------

  ----- ------------ - -- ---------------- -- -- -
    ---- -------- ---------- -------- ---
      ------- ------------------------------------- -------------------
    ------
  --

  ----- ------------ - -- -------------- -- -- -
    ---- -------- ---------- ------- ---
      ------- ---------------------------------------
    ------
  --

  ------ -
    --
      ------- ----------- -- --------------------- -----------------
      --------------------
        ---------------
        ---------------
        ----------- -- -----------------
        --------------------
        -------------------------------
        ---------------------------
        ---------------------------
      --
    ---
  --
-

------ ------- ----

总结

本文介绍了 react-image-lightbox-rotate 这个 npm 包的用法和示例,希望能够帮助前端开发者更好地了解并使用该组件,提高自己的技术水平和代码质量。在实际项目中,可以根据需求进行灵活的配置和扩展,打造出更好的图片浏览体验。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005737f81e8991b448e971c

纠错
反馈