辅助线的label里面的文字如果太长的话可以自动换行吗?
测量准备显示文本的字符串长度,大于换行长度,进行字符串切分,然后拼接 \n 换行符号:
function getTextWidth(text, font) {
// canvas 可以自己做个缓存,复用
const canvas = document.createElement("canvas");
const context = canvas.getContext("2d");
// 配置字体样式巴拉巴拉...
context.font = font;
// 不需要在画布上输出就可以计算文字的宽度
const metrics = context.measureText(text);
return metrics.width;
}
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
5 回答3.8k 阅读
解决方案 Solution
你可以通过在
markLine.label.text
中设置数组来实现换行的效果。代码示例 Code Example
代码参考 Code Example
结果展示 Results
在线效果参考:https://codesandbox.io/s/markline-label-line-break-fhnwc8
相关文档 Related Documentation
标注demo:https://www.visactor.io/vchart/demo/marker/mark-line-basic?ke...
标注教程:https://www.visactor.io/vchart/guide/tutorial_docs/Chart_Conc...
相关api:https://www.visactor.io/vchart/option/barChart#markLine.label...
github:https://github.com/VisActor/VChart