d3.behavior.zoom()忽略了比例

时间:2014-12-11 18:49:02

标签: javascript d3.js

我已设置此fiddle以试图找出我传递给d3.behavior.zoom()的比例被忽略的原因。我将比例设置为10,但有效比例为1.然后,如果我尝试平移网格,比例跳转到10.当我尝试缩放网格时,会发生同样的事情。比例跳至10,然后应用额外的比例。我究竟做错了什么?我如何解决这个问题才能获得有效的初始比例值?

1 个答案:

答案 0 :(得分:0)

您正在初始化var scale = 10以表示初始缩放,并通过zoomer将其应用于.scale(10)。因此zoomer知道初始比例,但代码中没有任何内容正在执行将初始比例应用于d3选择 vis的工作。实际应用比例的第一次是用户进行交互,然后调用function zoom() {...},最后应用比例。

应用初始比例的时间/地点是您创建vis

的时间
//create a group that will hold all the content to be zoomed
var vis = graph.append("svg:g")
    .attr("class", "plotting-area")
    .attr("transform", "scale(" + scale + ")");// <-- THIS

此处an updated fiddle