我用了
d3.select(".graph")
.call(d3.behavior.zoom().on("zoom", redraw)).on("dblclick.zoom", null).on("wheel.zoom", null);
function redraw() {
console.log("here", d3.event.translate, d3.event.scale);
g.attr("transform","translate(" + d3.event.translate + ")" + " scale(" + d3.event.scale + ")");
}
Run Code Online (Sandbox Code Playgroud)
创建 pan,但是当我创建一个 .on 事件侦听器并redraw()使用除我拥有的方式之外的任何方式进行调用时,它返回 d3.event.translate 和 d3.event.scale,因此我无法更新转变。我已经看到了使用地图按钮进行缩放的代码,但没有看到图表。一定有可能,但我不知道如何。我到目前为止的代码是...
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.node {
stroke: #000;
stroke-width: 0px;
}
.link {
stroke: #999;
stroke-opacity: .6;
}
.graphmap {
border: 1px solid black;
}
</style>
</head>
<body>
<div class="graph"></div>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
// start draw zoom buttons
var zoom = d3.select(".zoom").append("svg")
.attr("width", …Run Code Online (Sandbox Code Playgroud)