npm 包 @types/react-swipeable 使用教程

阅读时长 6 分钟读完

@types/react-swipeable 是一个为 React-Swipeable 提供类型定义的 npm 包。React-Swipeable 是一个基于 React 实现的轻量级触摸滑动组件库,可以轻松地实现手机屏幕的滑动交互操作。本篇文章将介绍如何使用 @types/react-swipeable 构建基于 React-Swipeable 的触摸滑动组件。

安装

使用 npmyarn 安装 @types/react-swipeable

基本用法

接下来我们将创建一个简单的拖动组件,通过鼠标或手指拖动可以改变其位置。首先,我们需要使用 React-SwipeableSwipeable 组件包裹我们的拖动组件。Swipeable 具有以下属性:

  • onSwiped ( direction: "Up" | "Down" | "Left" | "Right", event: Event ): 滑动结束时触发的函数,可以获取滑动方向和触发事件对象。
  • onSwiping ( event: Event, deltaX: number, deltaY: number ): 滑动过程中触发的函数,可以获取事件对象以及 X 和 Y 轴滑动距离。
  • preventDefaultTouchmoveEvent ( preventDefault?: boolean ): 是否阻止默认的滑动事件。默认值为 true
-- -------------------- ---- -------
------ ------ - -------- - ---- --------
------ - --------- - ---- ------------------

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

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

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

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

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

这时候就可以通过鼠标或手指拖动组件,在拖动的时候可以实时获取到鼠标或手指的位置。值得注意的是,在 Swipeable 组件上关于阻止默认事件的参数 preventDefaultTouchmoveEvent 进行了修改,因为在拖动时需要阻止默认的滑动事件,否则会对拖动效果造成影响。

自定义滑动计算

我们可以通过自定义 Swipeabledelta 属性来决定触发滑动操作的最小滑动距离。默认情况下,Swipeable 会根据浏览器的 DPI 自动计算一个最小滑动距离,但我们也可以自己设置。我们可以通过设置 SwipeabletrackMouse 属性,手动控制滑动距离,在 onSwiping 事件中计算当前滑动位置与起始位置的差值:

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

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

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

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

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

这样做就能够自定义滑动距离的计算方式了。

结语

@types/react-swipeable 使得基于 React-Swipeable 的组件开发更加方便。通过本文介绍的相关配置就能够轻松地实现开发高质量的触摸滑动组件。

完整代码示例可以在 Github 上查看。

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

纠错
反馈