使用svg.js更改svg文本垂直位置

时间:2014-02-27 13:56:36

标签: javascript svg

我已阅读文档,但不知道如何实现这一目标。 dy没有变化。

/**

* Draws text * * @param {String} $text Text * @param {int} $x Starting point X coordinate * @param {int} $y Starting point Y coordinate * @param {Object} $font Font properties * @returns {text} SVG JS text object */ drawText = function($text, $x, $y, $font) { $svgText = $svg.text(($text !== undefined && $text !== null) ? $text : '-').attr({x: $x, y: $y}).font($font); return $svgText.tspan.dy('0.9em'); };

提前多多感谢

1 个答案:

答案 0 :(得分:1)

我认为你的问题在于:

return $svgText.tspan.dy('0.9em');

在文本元素tspan上是一个方法,而不是一个引用: http://documentup.com/wout/svg.js#text/tspan

更新:

tspan()方法不返回文本元素中已存在的tspan,它会创建一个新的。您正在寻找的是lines参考。 Lines保存文本元素中的所有tspans。由于linesSVG.Set的实例,因此您可以直接在其上调用dy方法:

text.lines.dy(0.9)

如果您想更改第一个元素的dy,可以使用each方法:

text.lines.each(function(i) {
  if (i == 0)
    this.dy(0.9)
})

请注意,leading方法在此处也可能有用: http://documentup.com/wout/svg.js#text/leading