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

@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


猜你喜欢

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

    简介 在前端开发中,有很多的技术栈和技术框架,而 React 是其中比较流程的一款框架。在使用 React 进行开发时,我们常常需要使用到 Swipeable Views 这样的组件。

    4 年前
  • npm 包 @types/react-tag-input 使用教程

    众所周知,React.js 是当下前端开发中非常流行的框架之一,它提供了一种基于组件的开发方式,使得我们可以以更加模块化、可重用的方式构建复杂的用户界面。而 @types/react-tag-inpu...

    4 年前
  • npm 包 @cypress/browserify-preprocessor 使用教程

    前言 在前端开发过程中,我们常常会使用 Cypress 这样的测试框架来进行端到端测试,而 Cypress 框架本身也提供了很多方便的 API 来帮助我们编写测试用例。

    4 年前
  • npm 包 check-code-coverage 使用教程

    在前端开发中,我们必须保证代码的质量和可维护性。其中,代码覆盖率是一个重要的指标。npm 包 check-code-coverage 就是一个非常好用的代码覆盖率检查工具。

    4 年前
  • npm 包 @cypress/code-coverage 使用教程

    介绍 在前端开发中,测试是非常重要的一环。代码覆盖率是测试结果的一个关键指标,它能告诉我们在多大程度上测试了我们的代码。 @cypress/code-coverage 是一个帮助我们在 Cypress...

    4 年前
  • npm 包 @types/react-tagcloud 使用教程

    前言 在前端开发中,我们经常使用一些第三方库或框架来提高开发效率。而为了更好地使用这些库或框架,我们需要了解其使用方法以及相关实现原理。本文将介绍一个 npm 包 @types/react-tagcl...

    4 年前
  • npm 包 @sweetalert2/eslint-config 使用教程

    在前端开发中,规范代码风格和格式具有极其重要的意义。因此,团队协作中的代码规范化也成了一个不可或缺的环节。其中,ESLint 作为 JavaScript 代码规范检测工具,以其高度的定制性和灵活性广受...

    4 年前
  • npm 包 @types/react-tagsinput 使用教程

    简介 @types/react-tagsinput 是一款针对 React 应用开发的可编辑标签组件的类型定义,使用它可以让开发者更方便地使用这个组件。 在具体使用该插件之前,需要先了解以下知识点: ...

    4 年前
  • npm 包 @sweetalert2/execute 使用教程

    随着前端技术的不断更新和发展,我们现在经常需要使用一些外部的 JavaScript 库和框架来帮助我们开发。其中,有很多重复性的代码需要我们不断地去实现,这样既浪费时间,也增加了出错的可能性。

    4 年前
  • npm 包 @types/react-tap-event-plugin 使用教程

    在前端开发中,我们经常使用 React 框架进行开发。React 在处理用户输入事件时,提供了一个较好的处理方案,即使用 react-tap-event-plugin 插件来处理 onClick 事件...

    4 年前
  • npm 包 css-property-sort-order-smacss 使用教程

    Web 前端的开发中,CSS 样式编写是必不可少的一部分。为了让 CSS 的编写规范化、易于维护和扩展,在不同的项目中,我们可以采用不同的 CSS 规范,如 SMACSS(Scalable and M...

    4 年前
  • npm 包 stylelint-config-property-sort-order-smacss 使用教程

    在前端开发中,CSS 代码规范是非常重要的一部分。其中,CSS 属性的顺序也很重要,可以提高代码的可读性和维护性。为了让开发者更方便地进行 CSS 属性的排序,有一款名为 stylelint-conf...

    4 年前
  • npm 包 @sweetalert2/stylelint-config 使用教程

    什么是 @sweetalert2/stylelint-config? @sweetalert2/stylelint-config 是一个样式检查工具 StyleLint 的配置包。

    4 年前
  • npm 包 @types/protractor 使用教程

    前言 Protractor 是一个基于 Selenium Webdriver 的端到端测试框架,它允许测试人员编写自动化测试脚本并且可以在 Web 应用上运行这些脚本。

    4 年前
  • npm 包 @types/react-tether 使用教程

    在前端开发中,使用一些优秀的第三方库可以大大提升开发效率,其中的一个必不可少的是 React,而 react-tether 是一个非常实用的库,它可以创建一个包裹在 Tether 组件中的 React...

    4 年前
  • npm 包 @types/react-timeout 使用教程

    介绍 在前端开发中,有时我们需要使用 setTimeout 或者 setInterval 来执行一些定时任务。在 React 中,除了可以使用浏览器原生的定时方法之外,还可以使用库 react-tim...

    4 年前
  • npm 包 @types/react-toastify 使用教程

    简介 npm(node package manager)是 Node.js 世界中最流行的软件包管理器,它允许您轻松安装、更新和删除 Node.js 应用程序的依赖项。

    4 年前
  • npm 包 @types/react-toggle 使用教程

    React Toggle 是一个非常方便的库,用于创建开/关按钮。如果你正在使用 React,你可能已经使用了它。它是一个非常流行的库,已经被许多人广泛地使用。但是,当我们使用 TypeScript ...

    4 年前
  • npm包@types/react-touch使用教程

    在React开发中,使用触控事件是非常常见的。而在使用触控事件时,@types/react-touch是一个非常好用的npm包,它可以方便地对触控事件进行类型定义,以提高代码的可读性和可维护性。

    4 年前
  • npm 包 @types/react-tracking 使用教程

    前言 在我们开发 React 应用的时候,有时候会需要集成第三方的跟踪服务,例如 Google Analytics、Mixpanel 等等。这时候,我们需要在项目中引入对应的跟踪代码,并且将对应的事件...

    4 年前

相关推荐

    暂无文章