npm 包 propagating-hammerjs 使用教程

引言

在网页应用中,手势操作已成为一种不可或缺的功能。而 HammerJS 库是一个较为流行的手势操作库,但它只能在特定的元素上绑定手势事件,无法在元素之间传递手势事件。而 Propagating HammerJS 插件则恰好满足了这一需求,即在子元素处理手势事件的同时能够将手势事件向上传递给祖先元素。本文将详细介绍如何使用 propagating-hammerjs npm 包。

安装与引入

使用 npm 进行安装:

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

在项目中引入 HammerJS 和 propagating-hammerjs:

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

使用

在普通的 HammerJS 中,我们通常是这样绑定手势事件的:

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

而在使用 Propagating HammerJS 时,我们只需要在 Hammer 对象上调用 propagateTo 方法并传入一个元素列表,即可实现手势事件在指定的元素列表之间传递:

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

其中, event.target 是触发手势事件的最底层元素;如果我们需要在手势事件的目标元素上处理事件,可以引入 propagateTo 的选项参数并设置为 false

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

案例

假设我们有一个页面,其中有一个可滑动的列表和一个固定定位的按钮。此时,我们希望在用户在列表项上左右滑动时移动该列表,同时在用户在按钮上左右滑动时切换到下一个页面。利用 Propagating HammerJS,我们可以这样实现:

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

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

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

结语

Propagating HammerJS 插件的使用非常简单,但却能发挥出强大的效果,极大地扩展了手势操作库的应用范围。我们可以利用 Propagating HammerJS 实现更优秀的用户体验,为用户带来更好的 Web 应用体验。

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


猜你喜欢

  • npm 包 grunt-csscomb 使用教程

    什么是 grunt-csscomb? grunt-csscomb 是一个能够协助前端开发者格式化并优化 CSS 代码的 npm 包。它可以对 CSS 文件进行去重、合并、格式化等操作,提升代码的可维护...

    5 年前
  • npm 包 react-native-vector-icons 使用教程

    简介 React Native 是一种移动应用程序框架,可以构建高保真、跨平台的 iOS 和 Android 应用程序。react-native-vector-icons 是一个支持导入超过 3000...

    5 年前
  • npm 包 my-local-ip 使用教程

    简介 在前端开发过程中,经常需要获取本地 IP 地址,例如获取本机的 IP 地址、获取局域网内其他设备的 IP 地址等。my-local-ip 就是一个用于获取本地 IP 地址的 npm 包。

    5 年前
  • npm 包 @sheetjs/uglify-js 使用教程

    什么是 @sheetjs/uglify-js? @sheetjs/uglify-js 是一个用于 JavaScript 压缩的 npm 包。它能够将 JavaScript 文件压缩至更小的体积,从而降...

    5 年前
  • npm 包 @mdi/js 使用教程

    前言 在前端开发中,很多时候需要使用图标来装饰页面或者作为操作按钮,本文将介绍使用 npm 包 @mdi/js 来获取 Material Design 图标的方法。

    5 年前
  • npm 包 ssf 使用教程

    简介 ssf(Simple Socket Forwarder)是一个基于 Websocket 协议的网络转发工具。它支持将本地端口的数据转发到远程主机的指定端口,并通过 Websocket 连接实现数...

    5 年前
  • npm 包 @babel/plugin-transform-parameters 使用教程

    介绍 在前端开发中,我们经常使用到 Babel 来将我们编写的 ES6/ES7 代码转换成 ES5 代码,以兼容一些不支持最新语法的浏览器。@babel/plugin-transform-parame...

    5 年前
  • npm 包 @mdi/font 使用教程

    介绍 @mdi/font 是一种可以在 Web 开发过程中使用的图标字体。它基于 Material Design 图标制作,而 Material Design 又是 Google 于 2014 年推出...

    5 年前
  • npm 包 jest-transform-stub 使用教程

    随着前端开发的快速发展,测试已经变成日常开发中必不可少的环节。而在测试过程中,我们常常需要使用一个叫做 Jest 的测试框架来进行单元测试。 Jest 是由 Facebook 开发的一款开源测试框架,...

    5 年前
  • npm 包 change-emitter 使用教程

    本文介绍如何使用 npm 包 change-emitter,这是一个用于监听 JavaScript 对象属性变化的工具。 安装 首先,我们需要在本地安装该 npm 包。

    5 年前
  • npm 包 @types/stylus 使用教程

    如果你是一名前端开发人员,经常使用 TypeScript 和 stylus 编写代码,那么你一定会遇到类型定义不兼容的情况,这将会给你的开发带来巨大的困扰。为了解决这个问题,npm 社区开发了一个 n...

    5 年前
  • npm 包 grunt-critical 使用教程

    随着 Web 技术的不断发展,前端性能优化变得越来越重要。其中一个重要的方面就是网页加载速度。有时候,在展示重要内容之前,首先需加载许多 CSS 和 JavaScript 文件,而这些文件可能会带来一...

    5 年前
  • npm 包 jasmine-matchers 使用教程

    Jasmine 是一个流行的 JavaScript 测试框架,它提供了很多类型的匹配器(Matcher)来方便我们进行测试。但是有时候我们需要实现一些自定义的匹配器来满足特定的需求。

    5 年前
  • npm 包 payment 使用教程

    简介 Payment 是一个高性能、易扩展、易维护的支付库,它支持多种支付方式,包括支付宝、微信支付、兴业银行等。 使用 Payment 可以很方便的实现各种支付场景,如扫码支付、公众号支付、APP ...

    5 年前
  • npm 包 esformatter-jquery-chain 使用教程

    什么是 esformatter-jquery-chain? esformatter-jquery-chain 是一个可以帮助你美化 jQuery 链式调用的 ES 格式化工具。

    5 年前
  • npm 包 eslint-config-jared 使用教程

    什么是 eslint-config-jared? eslint-config-jared 是一个 npm 包,用于在项目中应用 eslint 规则。它是基于 eslint 的一套规则集,开发者可以根据...

    5 年前
  • npm 包 qj 使用教程

    前言 在前端开发中,我们经常要处理日期和时间的相关问题,例如:获取某个时间的前一天/下一天、计算两个日期之间的天数等等。JavaScript 自带 Date 对象可以实现一些基本的日期操作,但是缺少一...

    5 年前
  • npm 包 cfb 使用教程

    什么是 cfb CFB(Compound File Binary)是一种样式化的二进制文件格式,通常用于保存 Microsoft Office 文档。npm 包 cfb 是一个解析 CFB 文件格式的...

    5 年前
  • npm 包 hot-formula-parser 使用教程

    前言 在前端开发中,我们通常需要对数据进行处理和计算,有时候需要实现 Excel 中的公式计算功能,这时候可以使用 hot-formula-parser 这个 npm 包来实现这个功能。

    5 年前
  • npm 包 folder-delete 使用教程

    在前端开发中,我们常常需要对本地的文件夹进行操作,例如创建、复制、移动和删除等等。其中,删除文件夹是一个比较常见的需求,但是在 Node.js 中,删除一个非空文件夹并不是一个 trivial 的问题...

    5 年前

相关推荐

    暂无文章