我有一个用d3驱动的地图,基本上是一个包含背景图像和svg的div。缩放和缩放完美无缺,直到您更改iOS设备的方向。背景图像缩放不正确,直到您通过再次与其进行交互来触发地图重新缩放(按缩放等)。这似乎只发生在iOS上。
我已经通过修改d3-zoom中的翻译功能暂时解决了这个问题。
自:
translate: function(x, y) {
return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y); },
要:
translate: function(x, y) {
return new Transform(this.k, 0, 0);
},
这解决了我在iOS上的问题,并且似乎也没有引起任何其他设备的任何问题,包括跨操作系统的桌面浏览器。
我在这个领域没有太多的知识或者d3一般都没有进入这项工作,所以我想知道是否有人熟悉这个iOS方向问题以及我是否应该在这里做一些不同的事情 - 因为我不认为黑客入侵图书馆是理想:)。如果需要,我很乐意证明其他代码。
PS - 我尝试了“正常”的iOS修复,用于定位问题,例如视口标记等