Skip to content

Commit 7630e3e

Browse files
committed
Fix zoom calculation
Issue #22
1 parent 92ab2d3 commit 7630e3e

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

InteractiveHtmlBom/render.js

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -375,27 +375,23 @@ function handleMouseMove(e, layerdict) {
375375
function handleMouseWheel(e, layerdict) {
376376
e.preventDefault();
377377
e.stopPropagation();
378-
t = layerdict.transform;
378+
var t = layerdict.transform;
379379
var wheeldelta = e.deltaY;
380380
if (e.deltaMode == 1) {
381381
// FF only, scroll by lines
382382
wheeldelta *= 30;
383383
} else if (e.deltaMode == 2) {
384384
wheeldelta *= 300;
385385
}
386-
if (wheeldelta > 0) {
387-
m = 100 / wheeldelta;
388-
} else {
389-
m = -wheeldelta / 100;
390-
}
386+
var m = Math.pow(1.1, -wheeldelta / 40);
391387
// Limit amount of zoom per tick.
392-
if (m > 3) {
393-
m = 3;
394-
} else if (m < 0.33) {
395-
m = 0.33;
388+
if (m > 2) {
389+
m = 2;
390+
} else if (m < 0.5) {
391+
m = 0.5;
396392
}
397393
t.zoom *= m;
398-
zoomd = (1 - m) / t.zoom;
394+
var zoomd = (1 - m) / t.zoom;
399395
t.panx += 2 * e.offsetX * zoomd;
400396
t.pany += 2 * e.offsetY * zoomd;
401397
redrawCanvas(layerdict);

0 commit comments

Comments
 (0)