npm 包 rc-hammerjs 使用教程

rc-hammerjs 是一个基于 Hammer.js 封装的 React 组件库,它提供了手势识别组件,能够让我们快速地为我们的 React 应用添加手势交互功能。本文将介绍如何使用 rc-hammerjs 以及它的一些重要特性。

安装

npm 安装 rc-hammerjs:

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

或者使用 yarn:

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

使用

使用 rc-hammerjs 很简单,只需要在我们需要的组件里使用它提供的识别器即可:

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

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

rc-hammerjs 的接口与 Hammer.js 类似,它支持以下手势:

  • Swipe: 左右或者上下滑动;
  • Pan: 手指在屏幕上移动;
  • Pinch: 双指缩放;
  • Press: 长按屏幕;
  • Rotate: 旋转屏幕。

每个识别器都可以传入 onPan, onPinch, onSwipe 等 props,来处理相应的手势事件。

以下是一个完整的示例:

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

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

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

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

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

自定义手势

有时候,Hammer.js 提供的默认手势并不能满足我们的需求,这时候我们需要自定义手势。rc-hammerjs 提供了 defineGesture 方法,可以让我们自定义一个手势:

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

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

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

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

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

在以上示例中,我们自定义了一个 rotate 手势,并通过 Hammer.defineGesture 方法注册该手势。customGesture 方法则需要返回我们自定义手势的配置项。在此示例中,我们让这个手势与 pan 互相识别,但是 rotate 要优先于 pan 执行,即先不识别 pan,再往后传递事件。emitter 对象里面的 emit 方法则用来处理手势事件,这里我们只是简单地输出了旋转的速度。

重载原有手势

有时候,Hammer.js 提供的手势不够灵活,我们需要对已有的手势进行重载。我们可以从 rc-hammerjs 中导出原有手势并进行修改,然后再将其导入使用:

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

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

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

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

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

在以上示例中,我们将 Swipe 对象解构出来,并通过继承方式派生出了一个自定义手势 customSwipe。在这个自定义手势中我们对 Swipedirection 参数进行了修改,使其可以支持所有的滑动方向。最后,我们将自定义手势 swipe 传给了 Hammerrecognizers 属性,来替换掉原有的手势。

总结

rc-hammerjs 是一个非常方便的手势识别组件库,它提供了手势识别组件,能够让我们快速地为我们的 React 应用添加手势交互功能。在使用 rc-hammerjs 时,我们可以通过传入不同的 props 来处理不同的手势类型,也可以通过自定义手势来满足我们的需求。本文介绍了 rc-hammerjs 的基本用法和一些重要特性,希望可以为你提供帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/rc-hammerjs


猜你喜欢

  • npm 包 @beisen-platform/platform-index-view 使用教程

    介绍 本文将为大家介绍一款前端 npm 包,即 @beisen-platform/platform-index-view。此包提供了一种简单、易用的方式来创建一个页面布局,专门用于视觉展示,特别是用于...

    5 年前
  • npm 包 @beisen-platform/platform-form 使用教程

    1. 背景介绍 在前端项目中,我们经常需要使用表单进行数据的输入、提交、验证等操作。为了提高开发效率和代码重用性,我们可以使用前端开源库或者 npm 包,其中 @beisen-platform/pla...

    5 年前
  • npm 包 @beisen-platform/platform-datatable 使用教程

    前言 在 Web 应用开发中,数据表格是经常用到的展示方式。每次都自己写样式和逻辑,既费时又费力。这时,npm 包 @beisen-platform/platform-datatable 就成为了我们...

    5 年前
  • npm包 @beisen-phoenix/field-select-list 使用教程

    简介 在前端开发中,我们经常需要使用下拉选择框。@beisen-phoenix/field-select-list是一款基于Vue.js的下拉选择框组件,可以大大减少前端开发的工作量。

    5 年前
  • npm 包 @beisen-cmps/platform-metadata 使用教程

    在前端开发中,我们经常要处理的一个问题是如何获取服务端返回的元数据。而 @beisen-cmps/platform-metadata 是一款提供了简单易用的 API 用于获取服务端数据的 npm 包。

    5 年前
  • npm 包 @beisen-cmps/platform-expression-runtime 使用教程

    前言 在前端开发中,我们常常需要对输入进行简单的计算、解析等操作,比如在表单验证、搜索关键字高亮等场景下。这时候,我们可以利用平台表达式运行时 npm 包 @beisen-cmps/platform-...

    5 年前
  • npm 包 @beisen/webpack-config 使用教程

    介绍 @beisen/webpack-config 是一个适用于企业级前端项目的 webpack 配置模板,旨在解决企业级前端项目中 webpack 配置复杂、体量大、难以维护的问题。

    5 年前
  • npm 包 fetch-polyfill 使用教程

    在前端开发中,数据请求接口是不可或缺的一部分。而 fetch API 可以让我们更方便地进行数据请求操作。然而,fetch API 并不在所有的浏览器中都实现了,这就需要引入 fetch-polyfi...

    5 年前
  • npm 包 karma-file-fixtures-preprocessor 使用教程

    前言 在前端开发中,我们经常需要对文件进行读取、处理等操作。本文将介绍一个非常有用的 npm 包 karma-file-fixtures-preprocessor,它可以帮助我们在 Karma 单元测...

    5 年前
  • npm 包 get-css-data 使用教程

    get-css-data 是一个可以将 CSS 文件中的数据提取出来的 npm 包。它可以用于前端开发中的各种场景,比如自动化测试、样式检查、数据验证等等。在本文中,我们将介绍 get-css-dat...

    5 年前
  • npm 包 create-elms 使用教程

    在前端开发中,我们经常需要使用一些 UI 组件来构建页面。而现在,有一个 npm 包 create-elms(https://www.npmjs.com/package/create-elms)可以帮...

    5 年前
  • npm 包 chai-colors 使用教程

    简介 chai-colors 是一款基于 Chai 断言库的 npm 包,提供了对颜色值的断言支持。该包支持多种颜色格式,包括 RGB、HEX、HSL 和 HSV。

    5 年前
  • npm 包 babel-plugin-transform-custom-element-classes 使用教程

    随着前端开发的不断发展,自定义 Web Components 已经成为一项重要的技术。而在自定义 Web Components 的过程中,定义类的方式对于组件的开发、维护、使用都有很大的影响。

    5 年前
  • npm 包 @beisen/static-form-label 使用教程

    前言 在前端开发中,我们经常需要对表单进行处理,其中表单标签是不可或缺的一部分。@beisen/static-form-label 包就是一款能够快速生成表单标签的工具,节省了我们手写标签的时间,提高...

    5 年前
  • npm 包 zy-test-v2005 使用教程

    在前端开发中,随着项目的不断扩大,我们需要借助一些工具来提高编码效率和代码质量。其中,npm 包是非常重要的工具之一。在本文中,我将详细介绍一个名为 zy-test-v2005 的 npm 包,并提供...

    5 年前
  • npm 包 zy-test-v2003 使用教程

    在前端开发中,我们经常需要使用各种第三方工具和框架来提高开发效率和技术实现。npm 是一个非常重要的工具和平台,它是 Node.js 的包管理器,可以方便地安装、发布和管理各种开源包和库。

    5 年前
  • npm 包 react-docgen-deprecation-handler 使用教程

    简介 在前端开发中,React 是一个非常流行的 JavaScript 库,通过使用组件,使 Web 开发变得更加容易和模块化。当我们在一个大型项目中使用众多组件时,当其中一个组件被标记为不赞成使用时...

    5 年前
  • npm 包 @emotion/styled-base 使用教程

    什么是 @emotion/styled-base @emotion/styled-base 是一款基于 Emotion 的 CSS-in-JS 库,可以帮助我们在 React 应用中进行样式化,并提高...

    5 年前
  • npm 包 parse-keys 使用教程

    在前端开发中,我们经常需要操作对象的键,比如获取一个对象中所有的键名,或者选取一个对象中特定的键值对。这时候一个方便的 npm 包 parse-keys 就可以派上用场了。

    5 年前
  • npm 包 react-event-names 使用教程

    在 Web 开发中,常常需要使用事件来操作元素,而 React 作为一款流行的前端框架,也提供了丰富的事件机制。但是,在实际开发中,很容易遇到一些事件的名称不知道该怎么写,这时候,我们就需要使用一个 ...

    5 年前

相关推荐

    暂无文章