main
Last change
on this file was d565449, checked in by stefan toskovski <stefantoska84@…>, 4 weeks ago |
Update repo after prototype presentation
|
-
Property mode
set to
100644
|
File size:
711 bytes
|
Line | |
---|
1 | export const zoomStage = (e,stage) => {
|
---|
2 | if (!e.evt.shiftKey) return;
|
---|
3 |
|
---|
4 | e.evt.preventDefault();
|
---|
5 |
|
---|
6 | const scaleFactor = e.evt.deltaY > 0 ? 0.85 : 1.2;
|
---|
7 |
|
---|
8 | const prevScale = stage.scaleX();
|
---|
9 |
|
---|
10 | let newScale = prevScale * scaleFactor;
|
---|
11 |
|
---|
12 | const mousePos = stage.getRelativePointerPosition();
|
---|
13 |
|
---|
14 | let mousePoint = {
|
---|
15 | x: (mousePos.x - stage.x()) / prevScale,
|
---|
16 | y: (mousePos.y - stage.y()) / prevScale,
|
---|
17 | };
|
---|
18 |
|
---|
19 | stage.scale({
|
---|
20 | x: newScale,
|
---|
21 | y: newScale,
|
---|
22 | });
|
---|
23 |
|
---|
24 | let newStagePos = {
|
---|
25 | x: mousePos.x - mousePoint.x * newScale,
|
---|
26 | y: mousePos.y - mousePoint.y * newScale,
|
---|
27 | };
|
---|
28 |
|
---|
29 | stage.position(newStagePos);
|
---|
30 | // this.drawGrid();
|
---|
31 | stage.batchDraw();
|
---|
32 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.