hammerjs(hammerjs 嵌套滚动)
简介:
Hammer.js 是一个轻量级的开源库,专门用于在移动端浏览器中实现手势检测和识别。它可以识别的手势包括:拖动、缩放、旋转等等,同时还支持多点触控,是开发移动端web应用时很好的选择。
多级标题:
一、安装和引入 Hammer.js
二、Hammer.js 基础手势
三、Hammer.js 高级手势
四、Hammer.js 配置项
详细说明:
一、安装和引入 Hammer.js
可以通过 npm 或者下载源码的方式来安装 Hammer.js。重点是它还支持在 Web 页面中通过 script 标签引入,这样使得使用 Hammer.js 变得非常方便。
使用 npm 安装:
npm install --save hammerjs
使用 script 引入:
引入之后,在使用 Hammer.js 之前,需要先获取 DOM 元素并初始化 Hammer 对象。例如,使用 document.getElementById('element') 来选择需要监听手势事件的元素,并通过 Hammer(element) 初始化 Hammer 实例。
var hammertime = new Hammer(myElement);
二、Hammer.js 基础手势
Hammer.js 支持很多的基础手势,包括 tap、doubletap、hold、pan、swipe、pinch、rotate 等等。
下面展示一些基础手势的用法:
// 单击事件
hammertime.on('tap', function(event) {
console.log('tapped');
});
// 按住事件
hammertime.on('hold', function(event) {
console.log('held');
});
// 拖动事件
hammertime.on('pan', function(event) {
console.log('panned');
});
// 缩放事件
hammertime.on('pinch', function(event) {
console.log('pinched');
});
// 旋转事件
hammertime.on('rotate', function(event) {
console.log('rotated');
});
三、Hammer.js 高级手势
除了以上基础手势,Hammer.js 还提供了一些高级手势,如 press、panend、pinchend、rotateend 等等。
下面展示一些高级手势的用法:
// 选择事件
hammertime.on('press', function(event) {
console.log('pressed');
});
// 拖动结束事件
hammertime.on('panend', function(event) {
console.log('panned end');
});
// 缩放结束事件
hammertime.on('pinchend', function(event) {
console.log('pinched end');
});
// 旋转结束事件
hammertime.on('rotateend', function(event) {
console.log('rotated end');
});
四、Hammer.js 配置项
Hammer.js 提供了一些配置项,可以用来调整手势的灵敏度、触发事件的速度、识别触控区域等等。
下面列举一些常用的配置项:
// 触控区域
hammertime.set({
domEvents: true,
touchAction: 'manipulation'
});
// 灵敏度
hammertime.get('pinch').set({ enable: true });
// 手指数量
hammertime.get('rotate').set({ pointers: 2 });
总结:
通过 Hammer.js,我们可以在移动端轻松地添加手势交互效果,使得移动端 web 应用更加直观友好。简单的 API,简明的文档,灵活的配置选项,使得使用 Hammer.js 变得十分简单。