javascript - D3.js 图表 : Labels (<text> Tags) Not Showing On IE11

标签 javascript internet-explorer d3.js

我有一个堆积条形图,其 <text>标签不会在 IE 上显示,但会在 Chrome 和 Firefox 上显示。

我在堆叠条形图上的标签是轴和图例的一部分。这是页面加载时的样子。

Screenshot 图表的文本实际上确实加载了,但只有在我与之交互之后。如果我执行以下任何操作...

  • 单击/右键单击图表上的任意位置
  • 将鼠标悬停在一个栏上(这会触发我设置的工具提示出现)
  • 调整窗口大小

...图例和轴上的图表标签均出现。

我正在使用 viewbox,这可能是这里的问题,因为我知道当将 viewbox 和 IE 放在同一个锅中时会发生一些黑魔法。

编辑: 在我看来,这是一个预先存在的问题。参见 herehere .

更新:我不得不更改它在页面上的放置位置(我没有编辑 CSS 或 JS),现在标签在加载时显示,但当其他任何内容发生变化时标签消失窗口(例如,完全不相关的事件被触发,窗口大小重新调整等)。和之前一样,如果我以任何可能的方式与它互动,标签就会再次出现。更改了问题标题以反射(reflect)这一点。

长话短说:

移动前:

  • 隐藏加载
  • 在受到关注(例如点击)时显示

移动后:

  • 已加载
  • 在调整窗口大小时隐藏
  • 在受到关注(例如点击)时显示
  • 从第 2 步开始重复

为了避免混淆,如果我在图表标签显示后单击它,图表的标签不会隐藏,IE 似乎很快就会厌倦玩躲猫猫。但是,如果我调整窗口大小或更改页面上的其他内容,它会因为我关注其他内容而生气并再次隐藏标签,直到我单击它或将鼠标悬停在栏上。

编辑 2:这是这个该死的图表在得到它想要的关注后的样子。

Chart w/ labels

编辑 3: 然而 another question ,看来我最初的想法是对的:它是 viewbox这就是造成这种情况的原因。

最佳答案

这可能是一个愚蠢的解决方法,但是否考虑过运行一个函数来“点击”图形或给予它关注?

我曾经需要一个对象的基状态类处于非事件状态,但我也希望第一个实例处于事件状态。这有点烦人,所以我只做了一个小功能,只用了一次点击并在加载时更改为事件状态,但在那之后实例被设置为非事件状态。

我会考虑对图表做类似的事情,它不应该影响任何其他浏览器,因为它们无论如何都以正确的格式加载。

关于javascript - D3.js 图表 : Labels (<text> Tags) Not Showing On IE11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39100258/

相关文章:

d3.js - X 轴不显示在使用 d3.js 的条形图上

javascript - 拆分对象属性中的字符串并创建新数据集

javascript - 如何为具有焦点和上下文的区域图实现 d3 的输入更新退出模式?

javascript - Node.js 服务器在浏览器上完成与移动设备相同的功能

javascript - if/else 语句判断 Iframe 是否为空

html - 如何向 <=IE6 显示某些内容,而向其他浏览器显示不同的内容?

IE 8 和 IE 7 中的 HTML5 标签

javascript - 鼠标事件处理程序内的 'this' 值

javascript - Angularjs:名称以 ! 开头时搜索过滤器不起作用(感叹号)

javascript - 谁有一个好的 IE JavaScript 调试器可以帮我吗?