summaryrefslogtreecommitdiff
path: root/assets/js/map/zoom.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/js/map/zoom.js')
-rw-r--r--assets/js/map/zoom.js21
1 files changed, 18 insertions, 3 deletions
diff --git a/assets/js/map/zoom.js b/assets/js/map/zoom.js
index aec278b..cba7c2c 100644
--- a/assets/js/map/zoom.js
+++ b/assets/js/map/zoom.js
@@ -1,3 +1,18 @@
-// Phase 3: zoom and pan behavior
-export function initZoom(svg, mapGroup) {}
-export function resetZoom(svg, zoomBehavior) {}
+import * as d3 from "https://cdn.jsdelivr.net/npm/d3@7/+esm";
+
+let _svg, _zoom;
+
+export function initZoom(svg, mapGroup) {
+ _svg = svg;
+ _zoom = d3.zoom()
+ .scaleExtent([0.5, 8])
+ .on("zoom", (event) => {
+ mapGroup.attr("transform", event.transform);
+ });
+ svg.call(_zoom);
+ return _zoom;
+}
+
+export function resetZoom() {
+ _svg.transition().duration(750).call(_zoom.transform, d3.zoomIdentity);
+}