d3.js - 缩放错误(iOS)

时间:2013-08-17 22:18:37

标签: javascript d3.js

我正在开发一个项目,该项目涉及一个pannable和zoomable d3.js图。我的工作基本上没问题,但是我发现了一个问题:

在iPad上测试时,我发现有些手势会导致d3错误 - 最新d3.js(不是.min版本)中的TypeError: 'undefined' is not an object,第1264行(似乎是function moved()的开头......

当缩放事件部分地在图形外部开始时似乎发生 - 例如一个手指放在图形上,一个放在外面,然后缩放。可能需要在不同的地方尝试一些;我无法找到触发它的确切方法。

我复制了项目并将其剪切成一个基本示例,该示例可在 ---不再可用--- 中找到。

安装了Waterbug,因此在iPad上进行测试时(可能还有其他支持旋转的东西),向右旋转时会出现错误日志控制台。

这看起来像是d3或我的代码中的错误吗?


更新

我已经将问题缩小到触摸事件,该事件在图表中开始,但随后延伸到外部。因此,如果您用一根手指平移图形,然后决定放大,但将第二根手指放在图形之外,则会发生错误。如果第二根手指也在图表内,则没有问题。


更新2

看来http://bl.ocks.org/mbostock/3892919的示例也遭受同样的使用 - 请参阅 ---不再可用--- 使用提供的代码,加上我已经包含了Waterbug所以将设备向右旋转(从垂直方向)将显示控制台。

问题似乎与moved()函数 - v3.2.8中的第1264行和v3.3.2中的第1387行有关。

1 个答案:

答案 0 :(得分:0)

原来这是d3中的一个错误 - 有关详细信息,请参阅https://github.com/mbostock/d3/issues/1497