gpt4 book ai didi

javascript - 有没有一种简单的方法可以使用 Javascript 在 DOM 中的现有 SVG 路径上绘制居中文本?

转载 作者:行者123 更新时间:2023-11-27 23:09:19 25 4
gpt4 key购买 nike

我正在使用将 SVG 图像放置在页面上的图表库。我可以在 Javascript 中获取 Path 元素。

我需要能够在路径定义的区域居中绘制文本。

Raphael.js 库可以简化 SVG 中的绘图文本,但我不知道如何在页面加载后使用它来编辑 HTML 中的现有 SVG。我怎样才能做到这一点?我不介意我是否必须使用 Raphael.js 或其他一些依赖项。

最佳答案

获取路径在其本地坐标系中的大小和位置:

var myPath = svgDocument.querySelector('#myPath');
var boundingBox = myPath.getBBox();

将文本附加到与路径相同的父元素,位于中间:

var text = svgDocument.createElementNS('http://www.w3.org/2000/svg', 'text');
text.style['text-anchor'] = 'middle';
text.style['dominant-baseline'] = 'middle';
text.setAttribute('x', boundingBox.x + boundingBox.width/2);
text.setAttribute('y', boundingBox.y + boundingBox.height/2);
myPath.parentElement.appendChild(text);

请务必注意,您不会获得有关任何父元素上发生的变换的信息,因此您需要确保您在同一坐标系下工作。

关于javascript - 有没有一种简单的方法可以使用 Javascript 在 DOM 中的现有 SVG 路径上绘制居中文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47080136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com