gpt4 book ai didi

javascript - D3的鼠标相对于父元素的坐标

转载 作者:可可西里 更新时间:2023-11-01 01:55:16 24 4
gpt4 key购买 nike

我想获取相对于父元素或 DOM 中除 this 之外的任何其他元素的鼠标坐标,但我一直在获取

Uncaught TypeError: Object [object Array] has no method 'getBoundingClientRect' d3.v3.min.js:1
H d3.v3.min.js:1
vo.mouse d3.v3.min.js:3
(anonymous function) index.html:291
(anonymous function)

我的代码:

.on("mouseup", function(d){
var th = d3.select( this );

var coordinates = [0, 0];
coordinates = d3.mouse( d3.select("body") );
console.log( coordinates[1] );
console.log( window );
//th.attr("cy", d3.mouse),
//d.newY = th.attr("cy");
console.log(d);
});

据我所知,我只能获取相对于我已附加 .on("mouseup", ...) 事件监听器的元素的鼠标坐标。

有没有办法获得那些相对于 DOM 中其他元素的坐标?

最佳答案

d3.mouse需要 DOM 元素,而不是 d3 选择。

d3.mouse(d3.select('body').node())

当然,选择 body 会更容易:

d3.mouse(document.body)

@Tom 的回答也适用于你的情况,因为你想要相对于页面的位置,但如果你想要相对于其他容器的位置,它就不起作用。

假设您想要在用户点击的位置放置一个弹出窗口,并且您想要将其相对于 svg 元素定位,以便它与显示的其余部分一起平移。

nodeEnter.on('click', function(d){
var coordinates = d3.mouse(svg.node());
});

关于javascript - D3的鼠标相对于父元素的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18571563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com