javascript - 如何让 d3.zoom 为内联 svg 工作?
问题描述
我正在尝试在内联 svg 上使用 d3.zoom,特别是美国地图(请注意,我对 d3js 非常缺乏经验)。经过一番研究,我找到了一个使用 d3.zoom https://www.datamake.io/blog/d3-zoom/的简单教程。
我现在的问题是它不起作用。没有出现错误。它什么也不做。
这是带有 svg 地图的 HTML 代码。
<div id="map">
<?xml version="1.0" encoding="UTF-8"?>
<svg id="usa_svg" height="800" width="1200" version="1.1" viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg">
<g id="USA">
<rect height="600" width="1200"></rect>
<!-- paths here -->
</g>
</svg>
</div>
这是JavaScript
var usa = d3.select("svg")
var rect = d3.select("rect");
var zoom = d3.zoom().on("zoom", zoomed);
rect.call(zoom);
function zoomed() {
var transform = d3.event.transform;
usa.attr("transform", transform.toString());
}
我不知道我做错了什么。是语法错误吗?我只是错过了代码的重要部分吗?帮助将不胜感激。
解决方案
推荐阅读
- python - 如何将 YAML 文件中的特定数据包含在另一个文件中?
- php - PHP Liveserver、Visual Code、SASS 不能一起工作
- google-apps-script - 以前未观察到的“暂时禁用 Google 登录”错误
- angular - 在 Angular 下拉菜单中显示日期数组
- laravel - 如果用户在 Laravel 中注册事件,如何执行功能从数据透视表中扣除可用性数量
- excel - 使用 excel vba 宏将总和扩展到动态范围
- angular - Angular - 模态 NgBootstrap ExpressionChangedAfterItHasBeenCheckedError
- android - 如何删除具有圆形背景的`AppBarLayout`角落中的空白
- jquery - Jquery:隐藏带有计数的单选按钮
- python - 通过抓取推特获取推特账号的关注者数量