我正在进入D3 v4.0,我很难在画布上添加几个行为。
常用设置:
var canvas = document.querySelector("canvas");
var canvasContext = canvas.getContext("2d");
...使用var simulation = d3.forceSimulation()...
然后:
d3.select(canvas)
.call(d3.drag()
.container(canvas)
.subject(dragsubject)
.on("start", dragstarted)
.on("drag", dragged)
.on("end", dragended)
);
d3.select(canvas)
.call(d3.zoom()
.scaleExtent([1 / 2, 4])
.on("zoom", zoomed));
有趣的是,当我启动页面时,我的节点一直移动直到它们达到平衡(如预期的那样),此时,我无法缩放或平移。 一旦图表稳定,我就无法拖动节点,但我可以缩放。所以就好像添加.call(d3.zoom()在我的图形顶部创建了一个图层,阻止鼠标事件到达它(或者我只能将一个.call添加到给定的画布)
关于如何在v4.0中组合行为的任何想法?