mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
Side menu drag fix
This commit is contained in:
19
js/ext/angular/src/directive/ionicSideMenu.js
vendored
19
js/ext/angular/src/directive/ionicSideMenu.js
vendored
@@ -57,6 +57,7 @@ angular.module('ionic.ui.sideMenu', ['ionic.service.gesture'])
|
||||
$element.addClass('menu-content');
|
||||
|
||||
var defaultPrevented = false;
|
||||
var isDragging = false;
|
||||
|
||||
ionic.on('mousedown', function(e) {
|
||||
// If the child element prevented the drag, don't drag
|
||||
@@ -67,15 +68,25 @@ angular.module('ionic.ui.sideMenu', ['ionic.service.gesture'])
|
||||
if(defaultPrevented) {
|
||||
return;
|
||||
}
|
||||
isDragging = true;
|
||||
sideMenuCtrl._handleDrag(e);
|
||||
e.gesture.srcEvent.preventDefault();
|
||||
};
|
||||
|
||||
var dragVertFn = function(e) {
|
||||
if(isDragging) {
|
||||
e.gesture.srcEvent.preventDefault();
|
||||
}
|
||||
};
|
||||
|
||||
//var dragGesture = Gesture.on('drag', dragFn, $element);
|
||||
var dragRightGesture = Gesture.on('dragright', dragFn, $element);
|
||||
var dragLeftGesture = Gesture.on('dragleft', dragFn, $element);
|
||||
var dragUpGesture = Gesture.on('dragup', dragVertFn, $element);
|
||||
var dragDownGesture = Gesture.on('dragdown', dragVertFn, $element);
|
||||
|
||||
var dragReleaseFn = function(e) {
|
||||
isDragging = false;
|
||||
if(!defaultPrevented) {
|
||||
sideMenuCtrl._endDrag(e);
|
||||
}
|
||||
@@ -108,8 +119,10 @@ angular.module('ionic.ui.sideMenu', ['ionic.service.gesture'])
|
||||
|
||||
// Cleanup
|
||||
$scope.$on('$destroy', function() {
|
||||
Gesture.off(dragLeftGesture, 'drag', dragFn);
|
||||
Gesture.off(dragRightGesture, 'drag', dragFn);
|
||||
Gesture.off(dragLeftGesture, 'dragleft', dragFn);
|
||||
Gesture.off(dragRightGesture, 'dragright', dragFn);
|
||||
Gesture.off(dragUpGesture, 'dragup', dragFn);
|
||||
Gesture.off(dragDownGesture, 'dragdown', dragFn);
|
||||
Gesture.off(releaseGesture, 'release', dragReleaseFn);
|
||||
});
|
||||
};
|
||||
@@ -125,7 +138,7 @@ angular.module('ionic.ui.sideMenu', ['ionic.service.gesture'])
|
||||
replace: true,
|
||||
transclude: true,
|
||||
scope: true,
|
||||
template: '<div class="menu menu-{{side}}"></div>',
|
||||
template: '<div class="sub-pane menu menu-{{side}}"></div>',
|
||||
compile: function(element, attr, transclude) {
|
||||
return function($scope, $element, $attr, sideMenuCtrl) {
|
||||
$scope.side = $attr.side;
|
||||
|
||||
Reference in New Issue
Block a user