fix(panOnScroll): normalize scroll speed in different browsers closes #665
This commit is contained in:
@@ -75,11 +75,16 @@ const ZoomPane = ({
|
|||||||
event.stopImmediatePropagation();
|
event.stopImmediatePropagation();
|
||||||
|
|
||||||
const currentZoom = d3Selection.property('__zoom').k || 1;
|
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(
|
d3Zoom.translateBy(
|
||||||
d3Selection,
|
d3Selection,
|
||||||
(event.deltaX / currentZoom) * panOnScrollSpeed,
|
(deltaX / currentZoom) * panOnScrollSpeed,
|
||||||
(event.deltaY / currentZoom) * panOnScrollSpeed
|
(deltaY / currentZoom) * panOnScrollSpeed
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
.on('wheel.zoom', null);
|
.on('wheel.zoom', null);
|
||||||
|
|||||||
Reference in New Issue
Block a user