【发布时间】:2021-04-28 14:12:36
【问题描述】:
我正在尝试使用普通的 JavaScript 和 SVG 动态创建饼图,并且我希望它具有工具提示,当您将鼠标悬停在特定于特定切片的每个饼切片上时会显示工具提示。
如果我插入一个 <title> 节点,我可以让它工作,但我不能用 CSS 自定义 <title> 使其看起来“漂亮”。
所以,我正在尝试使用 SVG 文本找到解决方法,但我似乎无法显示文本框。我尝试将包含工具提示框和文本的组放在饼图切片路径之前和之后,但无论哪种方式都不起作用。
当我去检查器时,我可以看到带有工具提示的组正在创建并显示在后端,但我在呈现的页面上看不到它们。谁能指出我正确的方向?我认为这可能与组的转换有关,但我尝试了不同的设置并没有解决它。我不确定我在这一点上做错了什么。我创建了一个 CodePen,目前我在:https://codepen.io/tho1379/pen/MWjMKQV
【问题讨论】:
-
我觉得文字太大了。检查你的坐标系统和字体大小。
-
@RobertLongson 我尝试更改字体大小,但不幸的是它没有使文本框出现。当我尝试调整视图框时,饼图消失了,我确实看到了部分文本框,但无论我如何调整变换,这些框都会被截断。此外,我仍然无法同时显示饼图和文本框。所以,它必须是一个分层的东西,但我不知道如何修复它。 :(
-
你的 viewBox 很小,你的工具提示变换很大,即 viewBox 大小的 200 倍。
-
@RobertLongson 我想我误解了转换的工作原理。我将视图框大小更改为 0 0 1000 1000,饼图现在缩小到一个点的大小。我现在可以看到我的文本框(它们似乎都叠放在一起),但我不明白它们是图表大小的 200 倍?我认为转换>翻译是将文本框推到一边?
-
@RobertLongson 我想我明白了!因为 viewbox 设置为 2,所以文本的正常大小被放大到不成比例的方式。所以,两个新问题:1)为什么我不能在不完全丢失图表的情况下放大视图框(正如我之前的评论中提到的,当我尝试将视图框设置为 1000x1000 时,图表变得如此之小,我什至看不到它)? 2) 如果您再次查看 CodePen,黄色文本框现在会显示除“vanilla”以外的所有切片 - 为什么会发生这种情况?
标签: javascript css svg charts