From d8aef4cd8cbeeb600093abcc5bdcd36e8f4fc218 Mon Sep 17 00:00:00 2001 From: francoisgrogor Date: Sun, 21 Feb 2016 11:18:20 +0200 Subject: [PATCH] Overlapping dropzones https://github.com/fatlinesofcode/ngDraggable/issues/223#issuecomment-186603474 --- ngDraggable.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ngDraggable.js b/ngDraggable.js index 3f4a2ee..657140c 100644 --- a/ngDraggable.js +++ b/ngDraggable.js @@ -375,14 +375,21 @@ angular.module("ngDraggable", []) } }; - var hitTest = function(x, y) { + var hitTest = function(x, y) { var bounds = element[0].getBoundingClientRect();// ngDraggable.getPrivOffset(element); x -= $document[0].body.scrollLeft + $document[0].documentElement.scrollLeft; y -= $document[0].body.scrollTop + $document[0].documentElement.scrollTop; + + var draggingElmt = document.getElementsByClassName("dragging")[0]; + var display = draggingElmt.style.display; + draggingElmt.style.display = 'none'; + var isTopElement = document.elementFromPoint(x, y) == element[0] || element[0].contains( document.elementFromPoint(x, y) );; + draggingElmt.style.display = display; + return x >= bounds.left && x <= bounds.right && y <= bounds.bottom - && y >= bounds.top; + && y >= bounds.top && isTopElement; }; initialize();