为了让事情变得更容易,这里有一个JSFiddle http://jsfiddle.net/3twag6Lx/我所拥有的。
TRY
在 FireFox(版本 35.0.1)中平移地图。单击并按住地图上的任意位置,然后快速左右移动。平移运动应该快速且平稳。
现在在 Chrome 中尝试同样的操作,您会发现它并不那么顺利!它有点生涩/滞后。我发现它在最新版本的 IE 和 Opera 中也很滞后。
顺便说一句,如果您注释掉这个样式块,那么行为会突然变得平滑并且不再滞后!当然,你不会得到一张漂亮的地图。
#map path {
fill: #C9DCC9;
stroke: #066860;
}
SO WHAT?
首先,如果有人能在他们的电脑上确认这种行为,我将不胜感激。我使用的是包含所有最新更新的 Windows 8.1。
那么,为什么这种行为在使用 D3 制作的其他地图上没有发生呢?This one http://techslides.com/demos/d3/d3-worldmap-boilerplate.html例如表现得很顺利!这与多边形的复杂性有关吗?
为了解决这个问题,我简化了地图的路径。我用的是-simplification
功能于TopoJson https://www.npmjs.com/package/topojson.
简化路径后,地图平移和缩放在 Chrome、Firefox、Opera 和 IE 11 中都非常流畅。
TopoJson 是一个节点包,因此您需要为 TopoJson 安装节点和许多其他依赖项才能使其在 Windows 上运行。如果你幸运的话,它可以在 Windows 上运行。
我很不幸,所以我创建了一个运行 Ubuntu 的虚拟机,在那里,节点设置变得非常容易,我设法在 5 分钟内完成了我想要的事情。与尝试在 Windows 上实现此功能的几天相比。
无论如何,希望这会有所帮助。 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)