Getting text area using getBBox()

后端 未结 2 1242
無奈伤痛
無奈伤痛 2020-12-14 10:05
var text = vis.selectAll(\"text\")
    .data(words, function(d) { return d.text.toLowerCase(); });
    text.enter().append(\"text\")
    .attr(\"text-anchor\", \"mid         


        
相关标签:
2条回答
  • 2020-12-14 10:21

    The best approach here depends on what you're trying to do. Most d3 callback functions will supply the current DOM element as this, so this should work:

    text.each(function() {
        console.log(this.getBBox());
    });
    

    Beyond that, the question is the context in which you need to use that number. For example, to get the sum of the text widths, you could do:

    var textWidth = 0;
    text.each(function() {
        textWidth += this.getBBox().width;
    });
    
    0 讨论(0)
  • 2020-12-14 10:33

    You can also do this synchronously on an element by using node():

    console.log(text.node().getBBox());
    
    0 讨论(0)
提交回复
热议问题