使用 d3 获取鼠标点击 svg 的坐标
Get coordinates of mouse click on svg using d3
我想获取鼠标单击矩形 svg 的坐标。 我正在尝试将鼠标单击坐标打印到控制台。
我可以使用pageX
和pageY
来获取坐标,但那是整个页面的坐标。我只需要 svg 内的坐标。
我正在使用d3.v3.min.js
所以我尝试了:
$(document).mousedown(function () {
console.log(d3.mouse(this));
});
我收到错误:
未捕获的类型错误: 无法读取 null 的属性"源事件"
我也试过:
$(document).mousedown(function () {
console.log(d3.mouse(document.getElementById("svg_id")));
});
我得到同样的错误。
当我尝试使用d3.svg.mouse(this)
时,出现错误:
未捕获的类型错误:未定义不是函数
如何在 svg 中获取点击坐标,为什么这些d3.mouse()
函数不起作用?
代码的问题在于你使用的是jQuery事件处理而不是D3事件处理。您需要如下所示的内容:
var svg = d3.select("svg");
svg.on("click", function() {
console.log(d3.mouse(svg.node));
})
也许
是时候在这里更新了?使用 JSv7,我认为这将是等效的代码片段:
svg.on("click", d => console.log([d.clientX, d.clientY]));
最近,d3JS似乎已经直接使用事件发生的节点的ClientX和ClientY属性,而无需任何类型的"鼠标"对象/方法。
相关文章:
- 如何在 JavaScript 中计算 SVG 路径的椭圆路径坐标
- 使用Javascript获取SVG路径的绝对坐标
- 如何在Snap.svg中第二次单击时重置svg坐标
- 如何在 svg 中查找文本的坐标
- SVG 世界地图坐标
- 使用 jQuery 正确更改 SVG 线坐标
- 在调整窗口大小时刷新 svg 坐标
- 使用 d3 获取鼠标点击 svg 的坐标
- 如何将 SVG 对象的 X Y 坐标的中心转到平面的中心
- 直线的第一个坐标 (x0,y0) 不会影响 SVG 中的起始位置
- 如何获得svg地图的纬度和经度坐标's的起始点(x=0,y=0)
- 为什么HTML/SVG坐标0,0从左上角开始
- SVG 到屏幕坐标
- 无需绘图即可获得SVG路径坐标
- 如何计算(SVG) X/Y坐标的平移和旋转(在JS/D3.js)
- 我如何创建一个svg精灵,然后获得每个svg的坐标
- 在html文件中嵌入svg坐标的最佳方法是什么?
- Gnuplot:网站上嵌入的交互式SVG图形在缩放时显示错误的鼠标坐标
- 检测正在悬停的svg坐标
- 在平移和缩放后单击SVG坐标