Side menu drag fix

This commit is contained in:
Max Lynch
2013-12-03 10:56:50 -06:00
parent 373044cfd8
commit 99e929b86d
5 changed files with 43 additions and 11 deletions

View File

@@ -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;