小编buk*_*uks的帖子

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

我正在使用 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 …
Run Code Online (Sandbox Code Playgroud)

javascript svg d3.js typescript

2
推荐指数
1
解决办法
2695
查看次数

标签 统计

d3.js ×1

javascript ×1

svg ×1

typescript ×1