Skip to content

Commit 5f1f40e

Browse files
committed
Fix zoom in FF
1 parent 1555744 commit 5f1f40e

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

InteractiveHtmlBom/render.js

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -376,10 +376,23 @@ function handleMouseWheel(e, layerdict) {
376376
e.preventDefault();
377377
e.stopPropagation();
378378
t = layerdict.transform;
379-
if (e.deltaY > 0) {
380-
m = 100 / e.deltaY;
379+
var wheeldelta = e.deltaY;
380+
if (e.deltaMode == 1) {
381+
// FF only, scroll by lines
382+
wheeldelta *= 30;
383+
} else if (e.deltaMode == 2) {
384+
wheeldelta *= 300;
385+
}
386+
if (wheeldelta > 0) {
387+
m = 100 / wheeldelta;
381388
} else {
382-
m = -e.deltaY / 100;
389+
m = -wheeldelta / 100;
390+
}
391+
// Limit amount of zoom per tick.
392+
if (m > 3) {
393+
m = 3;
394+
} else if (m < 0.33) {
395+
m = 0.33;
383396
}
384397
t.zoom *= m;
385398
zoomd = (1 - m) / t.zoom;
@@ -401,7 +414,7 @@ function addMouseHandlers(div, layerdict) {
401414
div.onmouseout = function(e) {
402415
handleMouseUp(e, layerdict);
403416
}
404-
div.onmousewheel = function(e) {
417+
div.onwheel = function(e) {
405418
handleMouseWheel(e, layerdict);
406419
}
407420
for (element of [div, layerdict.bg, layerdict.silk, layerdict.highlight]) {

0 commit comments

Comments
 (0)