Web Dev Solutions

Catalin Mititiuc

aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/index.js')
-rw-r--r--src/index.js22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/index.js b/src/index.js
index a0a99f4..fd679d2 100644
--- a/src/index.js
+++ b/src/index.js
@@ -3,18 +3,23 @@ import Game from './modules/game.js';
const PanZoom = new function () {
const vb = 'viewBox';
+ let svg;
- function storeLatestViewBoxVal(svg) {
+ function storeViewBoxVal() {
+ localStorage.setItem(vb, svg.getAttribute(vb));
+ }
+
+ function observeViewBoxChanges() {
const observer = new MutationObserver(mutations => {
if (mutations.find(m => m.target == svg && m.attributeName == vb)) {
- localStorage.setItem(vb, svg.getAttribute(vb));
+ storeViewBoxVal(svg);
}
});
observer.observe(svg, { attributes: true });
}
- function restoreViewboxVal(svg) {
+ function restoreViewBoxVal() {
const storedVbVal = localStorage.getItem(vb);
if (storedVbVal) {
@@ -22,9 +27,7 @@ const PanZoom = new function () {
}
}
- this.start = function (svg) {
- restoreViewboxVal(svg);
-
+ function addEventListeners() {
svg.addEventListener('wheel', e => {
e.preventDefault();
@@ -36,8 +39,13 @@ const PanZoom = new function () {
pan(svg, e);
}, { passive: false });
+ }
- storeLatestViewBoxVal(svg);
+ this.start = function (el) {
+ svg = el;
+ restoreViewBoxVal();
+ addEventListeners();
+ observeViewBoxChanges();
};
};