d3.event.translate包含触摸设备缩放时的NaN

时间:2014-09-19 09:20:31

标签: javascript svg d3.js

我使用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

非常感谢任何帮助或指示

0 个答案:

没有答案