0

我正在使用 d3 轴组件,但我想在绘制后调整一些东西。具体来说,我想通过向文本元素添加转换并将文本锚属性从“中间”设置为“结束”来旋转文本标签。

我遇到的问题是 text-anchor 属性似乎是由 d3 代码异步设置的,作为过渡的一部分。当我在我的代码中将值设置为“结束”时,它随后在转换运行时被设置回“中间”。

如果我等到过渡结束再进行更改,它看起来会很不稳定。我想知道是否有一种方法可以将自己插入到绘制和转换轴的过程中,以便使用我的文本锚值而不是默认值?

4

2 回答 2

2

这似乎是 API 无法覆盖的东西。一个简单但棘手的解决方案是将其设置在您的样式表中......

.x.axis text {
  text-anchor: end !important;
}
于 2012-06-25T06:07:15.903 回答
2

我相信这构成了轴组件中的错误,因此我创建了一个拉取请求来立即更新标签属性,而不是作为轴转换的一部分。文本元素的 text-anchor 属性无法插入,因此没有理由将更新推迟到过渡,并且立即设置它可以让您轻松使用后选择修复它。

另一种解决方法是扩展轴组件以支持不同样式的刻度标记。这样,您就不需要使用后选择,因此不会与轴转换发生冲突。

于 2012-06-25T20:38:12.383 回答