gpt4 book ai didi

javascript - getBBox() 和 getCompulatedTextLength() 一次有效,一次无效

转载 作者:太空宇宙 更新时间:2023-11-04 16:19:51 28 4
gpt4 key购买 nike

我正在使用 d3.js+svg+javscript/typescript 创建图表。我需要知道文本的长度才能将其附加到适当的位置。

我正在使用/正在尝试使用函数 getBBox() 和 getCompulatedTextLength(),但是... getBBoX 仅在我第一次生成图表时才起作用(第二次和下一次返回 0),而 getCompulatedTextLength( )有效......只是有时。从我读到的内容来看,问题可能是在我尝试读取其宽度/高度之前,未生成 svgtext。

    export function ReturnWidthOfText(text1, rotate, fontSize, someSVGGroup , fontName)
{

var tempText;
if (rotate == true)
{
tempText = someSVGGroup.append("svg:text")
.attr("id", "lolo")
.style("font-size", fontSize + "px")
.style("font-family", fontName)
.attr("transform", "rotate(270)")
.text(text1);
}
else
{
tempText = someSVGGroup.append("svg:text")
.attr("id", "lolo")
.style("font-size", fontSize + "px")
.style("font-family", fontName)
.text(text1);
}

var width = tempText.getComputedTextLength();

document.getElementById("lolo").parentNode.removeChild(document.getElementById("lolo"))

return width;
}


export function ReturnSizeOfText(text1, rotate, fontSize, someSVGGroup, fontName) {

//let svgText = document.getElementById("lolo");
var tempText;

if (rotate == "Yes")
{
tempText = someSVGGroup.append("svg:text")
.attr("id", "lolo")
.style("font-size", fontSize + "px")
.style("font-family", fontName)
.attr("transform", "rotate(270)")
.text(text1);
}
else
{
tempText = someSVGGroup.append("svg:text")
.attr("id", "lolo")
.style("font-size", fontSize + "px")
.style("font-family", fontName)
.text(text1);
}

let size;
size = { Width: 0, Height: 0 };
let element: any = document.getElementById("lolo");
let bbox = element.getBBox();

//console.log(text.node().getBBox());
size.Width = bbox.width;
size.Height = bbox.height;


//var width = tempText.getComputedTextLength();

document.getElementById("lolo").parentNode.removeChild(document.getElementById("lolo"))

return size;


}

有人可以建议如何改进这些功能以使其正常工作吗?当我准备“Office 应用程序”时,我主要对 IE 和 Edge 的解决方案感兴趣。

最佳答案

我找到了答案。它返回 0,因为仅当 svg/html block 可见时它才返回良好的结果,而当我尝试重新生成图表时它被隐藏。

关于javascript - getBBox() 和 getCompulatedTextLength() 一次有效,一次无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40744176/

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