From 7f5f18bd11a2ff512fc6f4b01ccf360c05bc0c41 Mon Sep 17 00:00:00 2001 From: Alexander Gansky Date: Mon, 4 Apr 2016 14:08:14 +0300 Subject: [PATCH 1/2] fixing for issu 117 --- ngDraggable.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/ngDraggable.js b/ngDraggable.js index 3f4a2ee..6efb731 100644 --- a/ngDraggable.js +++ b/ngDraggable.js @@ -32,7 +32,12 @@ angular.module("ngDraggable", []) var _dragHandle; // to identify the element in order to prevent getting superflous events when a single element has both drag and drop directives on it. - var _myid = scope.$id; + var _myid = false; + if(attrs.id) { + _myid = attrs.id; + } else { + _myid = scope.$id; + } var _data = null; var _dragOffset = null; @@ -271,7 +276,12 @@ angular.module("ngDraggable", []) var _lastDropTouch=null; - var _myid = scope.$id; + var _myid = false; + if(attrs.id) { + _myid = attrs.id; + } else { + _myid = scope.$id; + } var _dropEnabled=false; From 0eba5e6316f3f18c799e263e4d74311a8614aac2 Mon Sep 17 00:00:00 2001 From: Andrii Chymyrys Date: Wed, 20 Apr 2016 14:30:44 +0300 Subject: [PATCH 2/2] fix(drag_with_scroll) fix scroll --- ngDraggable.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/ngDraggable.js b/ngDraggable.js index 6efb731..debbab0 100644 --- a/ngDraggable.js +++ b/ngDraggable.js @@ -49,6 +49,7 @@ angular.module("ngDraggable", []) var onDragStartCallback = $parse(attrs.ngDragStart) || null; var onDragStopCallback = $parse(attrs.ngDragStop) || null; var onDragSuccessCallback = $parse(attrs.ngDragSuccess) || null; + var idWithScroll = attrs.ngScrollId || null; var allowTransform = angular.isDefined(attrs.allowTransform) ? scope.$eval(attrs.allowTransform) : true; var getDragData = $parse(attrs.ngDragData); @@ -56,6 +57,8 @@ angular.module("ngDraggable", []) // deregistration function for mouse move events in $rootScope triggered by jqLite trigger handler var _deregisterRootMoveListener = angular.noop; + var _scrollTop = 0; + var initialize = function () { element.attr('draggable', 'false'); // prevent native drag // check to see if drag handle(s) was specified @@ -154,6 +157,9 @@ angular.module("ngDraggable", []) _dragOffset = {left:document.body.scrollLeft, top:document.body.scrollTop}; } + if (idWithScroll) { + _scrollTop = element.parents().find('#' + idWithScroll).scrollTop(); + } element.centerX = element[0].offsetWidth / 2; element.centerY = element[0].offsetHeight / 2; @@ -167,7 +173,7 @@ angular.module("ngDraggable", []) _ty = _my - element.centerY - $window.pageYOffset; } else { _tx = _mx - _mrx - $window.pageXOffset; - _ty = _my - _mry - $window.pageYOffset; + _ty = _my - _mry - $window.pageYOffset - _scrollTop; } $document.on(_moveEvents, onmove); @@ -197,6 +203,10 @@ angular.module("ngDraggable", []) } } + if (idWithScroll) { + _scrollTop = element.parents().find('#' + idWithScroll).scrollTop(); + } + _mx = ngDraggable.inputEvent(evt).pageX;//ngDraggable.getEventProp(evt, 'pageX'); _my = ngDraggable.inputEvent(evt).pageY;//ngDraggable.getEventProp(evt, 'pageY'); @@ -205,7 +215,7 @@ angular.module("ngDraggable", []) _ty = _my - element.centerY - _dragOffset.top; } else { _tx = _mx - _mrx - _dragOffset.left; - _ty = _my - _mry - _dragOffset.top; + _ty = _my - _mry - _dragOffset.top - _scrollTop; } moveElement(_tx, _ty);