联合js如何将文本对齐到rect对象的左侧

时间:2016-05-05 19:28:18

标签: javascript jointjs

我正在使用关节js绘制图表,所以,我创建一些带有文本的矩形对象,但我需要将该文本对齐到左边:

var rectname = new joint.shapes.basic.Rect({
            position: { x: 110, y: y_value },
            size: { width: 450, height: 45 },
            attrs: { 
                rect: { fill: bgcolor2,'stroke-width': 0 },
                text: {
                    text: 'Any text here',
                    fill: 'white'
                    'ref-x': .5, 
                    'ref-y': .5, 
                    ref: 'rect', 
                    'y-alignment': 'middle', 
                    'x-alignment': 'left'
                }
            }
        });

我已经尝试过像这样的文本属性,但它不起作用:

{{1}}

并尝试在“中间”设置x和y对齐而没有结果。

有什么想法吗?提前谢谢

2 个答案:

答案 0 :(得分:1)

使用标签设置元素的文本并使用' text-anchor'用于设置文本对齐的属性,如下所示

var rectname = new joint.shapes.basic.Rect({
        position: { x: 110, y: y_value },
        size: { width: 450, height: 45 },
        attrs: {
            '.label': {text: 'Any text here', 'text-anchor': 'end'}
        }
    });

有关text-anchor属性的更多信息,请点击此处 https://developer.mozilla.org/en/docs/Web/SVG/Attribute/text-anchor

答案 1 :(得分:1)

到下一个感兴趣的开发者:

我有多行字符串,所以jointjs会将每个字符串放在中心(不是很酷)。我的解决方案:

text: { text: code, fill: 'gray', fontSize: fontSize, fontFamily, 'text-anchor': 'left', 'ref-x': borderSize / 2 }

此时,我已经知道计算出所需的宽度,只是添加了一个边框。