Browse Source

Better zooming and scrooling experience

dev_h
ophir 4 years ago
parent
commit
6e8d99d57a
1 changed files with 10 additions and 5 deletions
  1. 10
    5
      client-data/tools/zoom/zoom.js

+ 10
- 5
client-data/tools/zoom/zoom.js View File

81
 
81
 
82
     function onwheel(evt) {
82
     function onwheel(evt) {
83
         evt.preventDefault();
83
         evt.preventDefault();
84
+        var multiplier =
85
+            (evt.deltaMode === WheelEvent.DOM_DELTA_LINE) ? 30 :
86
+                (evt.deltaMode === WheelEvent.DOM_DELTA_PAGE) ? 1000 :
87
+                    1;
88
+        var deltaX = evt.deltaX * multiplier, deltaY = evt.deltaY * multiplier;
84
         if (!evt.ctrlKey) {
89
         if (!evt.ctrlKey) {
85
             // zoom
90
             // zoom
86
             var scale = Tools.getScale();
91
             var scale = Tools.getScale();
87
             var x = evt.pageX / scale;
92
             var x = evt.pageX / scale;
88
             var y = evt.pageY / scale;
93
             var y = evt.pageY / scale;
89
             setOrigin(x, y, evt, false);
94
             setOrigin(x, y, evt, false);
90
-            animate((1 - ((evt.deltaY > 0) - (evt.deltaY < 0)) * 0.25) * Tools.getScale());
95
+            animate((1 - deltaY / 800) * Tools.getScale());
91
         } else if (evt.altKey) {
96
         } else if (evt.altKey) {
92
             // make finer changes if shift is being held
97
             // make finer changes if shift is being held
93
             var change = evt.shiftKey ? 1 : 5;
98
             var change = evt.shiftKey ? 1 : 5;
94
             // change tool size
99
             // change tool size
95
-            Tools.setSize(Tools.getSize() - ((evt.deltaY > 0) - (evt.deltaY < 0)) * change);
100
+            Tools.setSize(Tools.getSize() - deltaY / 100 * change);
96
         } else if (evt.shiftKey) {
101
         } else if (evt.shiftKey) {
97
             // scroll horizontally
102
             // scroll horizontally
98
-            window.scrollTo(document.documentElement.scrollLeft + evt.deltaY, document.documentElement.scrollTop + evt.deltaX);
103
+            window.scrollTo(document.documentElement.scrollLeft + deltaY, document.documentElement.scrollTop + deltaX);
99
         } else {
104
         } else {
100
             // regular scrolling
105
             // regular scrolling
101
-            window.scrollTo(document.documentElement.scrollLeft + evt.deltaX, document.documentElement.scrollTop + evt.deltaY);
106
+            window.scrollTo(document.documentElement.scrollLeft + deltaX, document.documentElement.scrollTop + deltaY);
102
         }
107
         }
103
     }
108
     }
104
     Tools.board.addEventListener("wheel", onwheel, { passive: false });
109
     Tools.board.addEventListener("wheel", onwheel, { passive: false });
166
 
171
 
167
     var zoomTool = {
172
     var zoomTool = {
168
         "name": "Zoom",
173
         "name": "Zoom",
169
-		"shortcut": "z",
174
+        "shortcut": "z",
170
         "listeners": {
175
         "listeners": {
171
             "press": press,
176
             "press": press,
172
             "move": move,
177
             "move": move,

Loading…
Cancel
Save