我使用d3为我的svg编写了一个自定义缩放功能,如下所示:
//Zoom behavior
function myzoom() {
xpos = d3.event.translate[0];
ypos = d3.event.translate[1];
vis.attr("transform", "translate(" + d3.event.translate + ") scale(" + d3.event.scale + ")");
}
这在非触摸设备上工作正常,但是当我放大触摸设备时,d3.event.translate数组有时会开始包含NaN' s。发生这种情况时,对myZoom的所有后续调用也会出现此问题,并且缩放将停止工作。
这是我收到的错误:
Error: Invalid value for <g> attribute transform="translate(NaN,NaN) scale(0.8467453123625244)" d3.v2.js?body=1:387
attrConstant d3.v2.js?body=1:387(anonymous function) d3.v2.js?body=1:3860
d3_selection_each d3.v2.js?body=1:509
d3_selectionPrototype.each d3.v2.js?body=1:3859
d3_selectionPrototype.attr d3.v2.js?body=1:3638
myzoom fw_tree.js?body=1:2842
event d3.v2.js?body=1:64
(anonymous function) d3.v2.js?body=1:175
dispatch d3.v2.js?body=1:4826
mousewheel d3.v2.js?body=1:4855
wrapper d3.v2.js?body=1:492
非常感谢任何帮助或指示