From cf34c8f48e80928eba9b23d99c7251437da85e8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20Mo=CC=88ller?= Date: Mon, 9 Nov 2020 12:39:21 +0100 Subject: [PATCH] fix(panOnScroll): normalize scroll speed in different browsers closes #665 --- src/container/ZoomPane/index.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/container/ZoomPane/index.tsx b/src/container/ZoomPane/index.tsx index 1c790fb5..9fe19301 100644 --- a/src/container/ZoomPane/index.tsx +++ b/src/container/ZoomPane/index.tsx @@ -75,11 +75,16 @@ const ZoomPane = ({ event.stopImmediatePropagation(); const currentZoom = d3Selection.property('__zoom').k || 1; + // increase scroll speed in firefox + // firefox: deltaMode === 1; chrome: deltaMode === 0 + const deltaNormalize = event.deltaMode === 1 ? 20 : 1; + const deltaX = event.deltaX * deltaNormalize; + const deltaY = event.deltaY * deltaNormalize; d3Zoom.translateBy( d3Selection, - (event.deltaX / currentZoom) * panOnScrollSpeed, - (event.deltaY / currentZoom) * panOnScrollSpeed + (deltaX / currentZoom) * panOnScrollSpeed, + (deltaY / currentZoom) * panOnScrollSpeed ); }) .on('wheel.zoom', null);