Преглед на файлове

Better zooming and scrooling experience

dev_h
ophir преди 4 години
родител
ревизия
6e8d99d57a
променени са 1 файла, в които са добавени 10 реда и са изтрити 5 реда
  1. 10
    5
      client-data/tools/zoom/zoom.js

+ 10
- 5
client-data/tools/zoom/zoom.js Целия файл

@@ -81,24 +81,29 @@
81 81
 
82 82
     function onwheel(evt) {
83 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 89
         if (!evt.ctrlKey) {
85 90
             // zoom
86 91
             var scale = Tools.getScale();
87 92
             var x = evt.pageX / scale;
88 93
             var y = evt.pageY / scale;
89 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 96
         } else if (evt.altKey) {
92 97
             // make finer changes if shift is being held
93 98
             var change = evt.shiftKey ? 1 : 5;
94 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 101
         } else if (evt.shiftKey) {
97 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 104
         } else {
100 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 109
     Tools.board.addEventListener("wheel", onwheel, { passive: false });
@@ -166,7 +171,7 @@
166 171
 
167 172
     var zoomTool = {
168 173
         "name": "Zoom",
169
-		"shortcut": "z",
174
+        "shortcut": "z",
170 175
         "listeners": {
171 176
             "press": press,
172 177
             "move": move,

Loading…
Отказ
Запис