首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >d3转换在多个浏览器中不起作用

d3转换在多个浏览器中不起作用
EN

Stack Overflow用户
提问于 2017-03-08 09:32:12
回答 1查看 190关注 0票数 0

我的问题与this chart (Beeswarm plot)有关。我有一个项目,这是基于这个或多或少。有些事情是不同的,数据量稍微高了一点。由于某些原因,当图表使用新数据更新时,我在IE、Firefox或Edge中看不到任何转换;但它在chrome中工作得很好。

当我单击筛选器更新数据时,会有2-4秒的延迟,之后会反映出新的数据。没有过渡,但更像是图形刷新。

具体的浏览器版本如下所示:

代码语言:javascript
复制
Chrome v56 [Works]
Firefox v51
IE v11.576
Edge v38

有没有人知道这可能是什么原因?提前感谢

注意:我用来制作此图表的示例适用于IE、Firefox和Edge。

Jsfiddle here

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-08 09:53:58

这种滞后很容易解释。您忘了更改此设置:

代码语言:javascript
复制
for (var i = 0; i < dataSet.length; ++i) simulation.tick();

在我的原始代码中,我有大约190个国家。然而,你有440个数据点,这需要更多的时间来计算。

因此,只需将对tick的调用次数更改为100到300之间:

代码语言:javascript
复制
for (var i = 0; i < 150; ++i) simulation.tick();
//                   ^-------- tweak this number

这个数字越大,重叠圆的机会就越小,但滞后就越大。在具有默认设置的“普通”D3力定向图表中,tick在模拟停止之前运行300次。

如果要将刻度保持为dataset.lenght,则在变换中引入delay会降低滞后的视觉效果。

这是你最新的提琴:https://jsfiddle.net/oo20pdnk/

至于其他浏览器,我不能重现这个问题:对我来说,它在Firefox和IE中都可以工作。但是,您在底部有一些jQuery代码(我还是删除了这些代码,将D3与jQuery混合在一起让我很头疼)。

PS:当使用别人的代码时,我相信改变变量名是个好主意。现在你有一些像africaColoreuropeColorcountriesCircles之类的东西,它们在我的代码中是有意义的,但在你的代码中却没有!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42661401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档