D3 4.0在画布上拖动平移和缩放

时间:2016-09-04 10:59:29

标签: d3.js

我正在进入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中组合行为的任何想法?

0 个答案:

没有答案