From 47bfc2161ec551d098a211f0074fc0e33c6abcda Mon Sep 17 00:00:00 2001 From: Semyon Bliznyuk Date: Fri, 14 Jul 2023 09:24:14 +0300 Subject: [PATCH] Update MousePanRotateDollyHandler.js Add page scroll support --- .../lib/handlers/MousePanRotateDollyHandler.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js b/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js index ab94dd95a..0a5405a2a 100644 --- a/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +++ b/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js @@ -14,13 +14,17 @@ const getCanvasPosFromEvent = function (event, canvasPos) { let element = event.target; let totalOffsetLeft = 0; let totalOffsetTop = 0; + let totalScrollX = 0; + let totalScrollY = 0; while (element.offsetParent) { - totalOffsetLeft += element.offsetLeft; - totalOffsetTop += element.offsetTop; - element = element.offsetParent; + totalOffsetLeft += element.offsetLeft; + totalOffsetTop += element.offsetTop; + totalScrollX += element.scrollLeft; + totalScrollY += element.scrollTop; + element = element.offsetParent; } - canvasPos[0] = event.pageX - totalOffsetLeft; - canvasPos[1] = event.pageY - totalOffsetTop; + canvasPos[0] = event.pageX + totalScrollX - totalOffsetLeft; + canvasPos[1] = event.pageY + totalScrollY - totalOffsetTop; } return canvasPos; };