몸짓
MIP는 구성요소에서 사용할 수 있는 클릭, 더블클릭, 슬라이딩 등과 같은 제스처를 캡슐화합니다.
예
var util = require('util'); var Gesture = util.Gesture; var customEle = require('customElemenet').create(); var build = function () { var gesture = new Gesture(this.element); // on 可接受多个事件名做为参数,以空格分隔。如 gesture.on('tap swipe') gesture.on('tap', function (event, data) { // 原始事件。如tap事件是通过 touchend 触发,event为tap对应的touchend事件对象 console.log(event); // gesture 计算后的数据。参数介绍见后面 console.log(data.type); // "tap" }); };
초기화 매개변수 소개
gesture 인스턴스화할 때 두 번째 매개변수는 개체를 구성으로 전달할 수 있습니다. 매개변수
예:
// 默认阻止纵向滑动事件 var gesture = new Gesture(element, { preventY: true });
특정 매개변수 소개:
preventDefault 是否阻止默认事件 preventX 是否阻止横向滑动时的默认事件 preventY 是否阻止纵向滑动时的默认事件 stopPropagation 是否阻止事件冒泡
기본 매개변수:
// 如果初始化时不传入配置参数,会使用下面的配置进行初始化 { preventDefault: false, stopPropagation: false, // 默认会阻止横滑的事件,考虑到浏览器横滑有很多默认操作,所以在这里默认阻止横滑 preventX: true, preventY: false }
gesture 데이터 객체 소개
데이터 객체는 이벤트 처리 함수의 두 번째 매개변수로 전달됩니다.
예:
gesture.on('tap', function (event, data) { console.log(data); });
일반 필드:
angle 滑动角度,如横滑为0度 deltaTime 从开始到结束的时间间隔。单位是msdeltaX 横轴位移 deltaY 纵轴位移 direction 方向。0: 未变动 1: 上 2:右 3: 下 4: 左 distance 移动距离 pointers 触摸点 timeStamp 事件发生的时间戳 velocity 速度 velocityX 横向速度 velocityY 纵向速度 x 触摸中心点坐标x y 触摸中心点坐标ytype 事件类型
확장 필드:
각 동작은 필드를 데이터 개체로 확장할 수 있습니다. 예를 들어 스와이프 이벤트의 swipeDirection 필드에 대한 자세한 내용은 제스처 인식기 소개를 참조하세요. 제스처 인식기는 제스처 데이터 개체를 수신하고, 특정 제스처를 인식하고, 특정 제스처 이벤트를 트리거할 수 있습니다.
제스처 인식기 개체는 사용자가 이벤트를 바인딩하면 자동으로 생성되고 사용자가 이벤트 바인딩을 해제하면 자동으로 삭제됩니다.
현재 세 가지 내장 인식기가 있습니다: tap, dobuletap, swipe
tap
사용법:
gesture.on('tap', function (event, data) { console.log('单击'); });
doubletap
두 번 클릭이 동시에 바인딩되면 탭 이벤트가 트리거됩니다. 더블 클릭이 트리거되는지 여부를 결정하기 위해 300ms의 지연이 발생합니다.
사용 방법:
gesture.on('tap', function (event, data) { console.log('双击'); });
swipe
Swipe
사용 방법:
// 使用方法1: gesture.on('swipe', function (event, data) { console.log(data.type); // "swipe" console.log(data.swipeDirection); // "up" or "right" or "down" or "left" }); // 使用方法2: gesture.on('swipeup swipedown', function (event, data) { console.log(data.type) // "swipeup" or "swipedown" console.log(data.swipeDirection) // "up" or "down" });