d3 tspan append

http://bl.ocks.org/enjalot/1829187

index.html#

<html>
    <meta charset='utf-8' />
<head>
</head>
<body>
    <svg>
    <text id='text_node' y="20px" text-anchor="start" opacity="1">
        <tspan>You</tspan>
        <tspan dx='.5em'>shall</tspan>
        <tspan dx='.5em' dy='.9em'>not</tspan>
        <tspan dx='.4em' dy='.9em'>pass</tspan>

    </text>
</svg>
<script src="https://mbostock.github.com/d3/d3.js"></script>
<script>
    var node = document.getElementById('text_node');
    var bbox = node.getBBox();
    var computed_text_length = node.getComputedTextLength();

    //Does not work
    text_node = d3.select('#text_node')
    text_node.append('tspan')
        .text('Fly')
        .attr('dx', '.2em')
    text_node.append('tspan')
        .text('you')
        .attr('dx', '.2em')
        .attr('dy', '.9em')
    text_node.append('tspan')
        .text('fools')
        .attr('dx', '.2em')
        .attr('dy', '.9em')

    /*
    d3.select('#text_node').append('tspan')
        .text('Fly')
        .attr('dx', '.2em')
        .attr('dy', '.9em')

    d3.select('#text_node').append('tspan')
        .text('you')
        .attr('dx', '.2em')
        .attr('dy', '.9em')
    */

    console.log('BBOX width: ', bbox.width);
    console.log('Computed text length: ', computed_text_length);
</script>
</body>
</html>

LICENSE

posted @ 2020-07-29 08:36  功夫 熊猫  阅读(557)  评论(0编辑  收藏  举报