gpt4 book ai didi

d3.js - d3 版本 4 解决方法拖动原点

转载 作者:行者123 更新时间:2023-12-03 15:42:30 25 4
gpt4 key购买 nike

在 v3 中,我使用拖动原点来防止由于鼠标位置/元素坐标偏移引起的明显跳跃。 v4 中是否有替代方案,因为原点功能已被删除?

var drag1 = d3.behavior.drag()
.origin(function () {
var t = d3.select(this);
return {
x: t.attr("x") + d3.transform(t.attr("transform")).translate[0],
y: t.attr("y") + d3.transform(t.attr("transform")).translate[1]
};
})
.on("drag", function (d, i) {
d3.select(this).attr("transform", function (d, i) {
return "translate(" + [d3.event.x, d3.event.y] + ")"
})
});

var drag2 = d3.behavior.drag()
.origin(function () {
var t = d3.select(this);
return { x: t.attr("x"), y: t.attr("y") };
})
.on("drag", function (d, i) {
d3.select(this)
.attr("x", d3.event.x)
.attr("y", d3.event.y);
});

最佳答案

这有效:

var drag = d3.drag()
.subject(subject)
.on("start", function () {
d3.event.sourceEvent.stopPropagation(); // silence other listeners
if (d3.event.sourceEvent.which == 1)
dragInitiated = true;
})


function subject(d) {return { x: 0, y: d3.event.y }};

关于d3.js - d3 版本 4 解决方法拖动原点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38599930/

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