d3.js v5.4.0 中的拖动问题

Posted

技术标签:

【中文标题】d3.js v5.4.0 中的拖动问题【英文标题】:Drag issue in d3.js v5.4.0 【发布时间】:2018-11-06 17:17:06 【问题描述】:

我正在尝试使用d3.js v5.4.0 实现this 示例。

但是你可以看到here 和这里:

即使没有抛出错误,拖动后节点的先前图像也不会被删除。

我调试了单步执行的拖动代码,但找不到原因。将不胜感激提供的任何帮助。

我认为问题可能出在此处:

thisGraph.drag = d3.drag()
            .subject(function(d)
                return x: d.x, y: d.y;
            )
            .on("drag", function(args)
                thisGraph.state.justDragged = true;
                thisGraph.dragmove.call(thisGraph, args);
            )
            .on("end", function() 
                // todo check if edge-mode is selected
            );

【问题讨论】:

在您的清单中,您错过了最相关的部分:问题本身。这就是它大胆的原因。这就是你的问题被搁置的原因。场外资源可能会消失,链接可能会损坏,因此,您至少需要在问题中加入相关部分。另一个问题是没有人愿意在您的 JSFiddle 中筛选超过 600 行代码。请记住,人们会利用空闲时间来解决您的问题。您应该尽一切努力使问题尽可能容易解决。 【参考方案1】:

你在使用画布吗?你需要运行

context.clearRect(0, 0, canvasWidth, canvasHeight);

每次渲染

【讨论】:

以上是关于d3.js v5.4.0 中的拖动问题的主要内容,如果未能解决你的问题,请参考以下文章

D3 js对Android Webview中的拖动事件没有反应

d3 js拖动事件侦听器没有收到事件-(d3,反应)

如何在 d3.js 中拖动路径

D3.js 使用缩放zoom时节点无法拖动,只能整体移动的问题

d3.js v4 sankey图 - 粒子和拖动不起作用

D3拖动效果