forked from madrobby/zepto
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgesture.js
39 lines (35 loc) · 1.19 KB
/
gesture.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Zepto.js
// (c) 2010-2015 Thomas Fuchs
// Zepto.js may be freely distributed under the MIT license.
//ios下手势事件
(function($){
if ($.os.ios) {
var gesture = {}, gestureTimeout;
function parentIfText(node){
return 'tagName' in node ? node : node.parentNode;
}
$(document).bind('gesturestart', function(e){
var now = Date.now(), delta = now - (gesture.last || now);
gesture.target = parentIfText(e.target);
gestureTimeout && clearTimeout(gestureTimeout);
gesture.e1 = e.scale;
gesture.last = now;
}).bind('gesturechange', function(e){
gesture.e2 = e.scale;
}).bind('gestureend', function(e){
if (gesture.e2 > 0) {
Math.abs(gesture.e1 - gesture.e2) != 0 && $(gesture.target).trigger('pinch') &&
$(gesture.target).trigger('pinch' + (gesture.e1 - gesture.e2 > 0 ? 'In' : 'Out'));
gesture.e1 = gesture.e2 = gesture.last = 0;
} else if ('last' in gesture) {
gesture = {};
}
});
//两指缩小以及放大
['pinch', 'pinchIn', 'pinchOut'].forEach(function(m){
$.fn[m] = function(callback){
return this.bind(m, callback);
};
});
}
})(Zepto);