/** * mui gesture flick[left|right|up|down] * @param {type} $ * @param {type} name * @returns {undefined} */ (function($, name) { var flickStartTime = 0; var handle = function(event, touch) { var session = $.gestures.session; var options = this.options; var now = $.now(); switch (event.type) { case $.EVENT_MOVE: if (now - flickStartTime > 300) { flickStartTime = now; session.flickStart = touch.center; } break; case $.EVENT_END: case $.EVENT_CANCEL: touch.flick = false; if (session.flickStart && options.flickMaxTime > (now - flickStartTime) && touch.distance > options.flickMinDistince) { touch.flick = true; touch.flickTime = now - flickStartTime; touch.flickDistanceX = touch.center.x - session.flickStart.x; touch.flickDistanceY = touch.center.y - session.flickStart.y; $.trigger(session.target, name, touch); $.trigger(session.target, name + touch.direction, touch); } break; } }; /** * mui gesture flick */ $.addGesture({ name: name, index: 5, handle: handle, options: { flickMaxTime: 200, flickMinDistince: 10 } }); })(mui, 'flick');