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