Javascript Raphael JS库如何在多行上禁用文本移位

Javascript Raphael JS库如何在多行上禁用文本移位,javascript,text,svg,multiline,raphael,Javascript,Text,Svg,Multiline,Raphael,默认情况下,将文本对象添加到图纸时,Raphael javascript库将文本围绕y点居中。它基本上取高度并将其除以2,然后将文本附加到新的y坐标。我正在寻找一种不同的行为,即即使添加多行,文本仍保持在同一坐标 我想知道是否有人有一个干净的方法来改变这种行为。我可以在源代码中修改它,但我不愿意在新版本发布时不断维护它 谢谢 基本上您已经描述了文本对象的默认操作 在“attr”方法中使用“text anchor”:“start” 我将向您展示Raphael附加资源帮助数据库,您可以在该数据库中查

默认情况下,将文本对象添加到图纸时,Raphael javascript库将文本围绕y点居中。它基本上取高度并将其除以2,然后将文本附加到新的y坐标。我正在寻找一种不同的行为,即即使添加多行,文本仍保持在同一坐标

我想知道是否有人有一个干净的方法来改变这种行为。我可以在源代码中修改它,但我不愿意在新版本发布时不断维护它


谢谢

基本上您已经描述了文本对象的默认操作

在“attr”方法中使用“text anchor”:“start”

我将向您展示Raphael附加资源帮助数据库,您可以在该数据库中查看文本示例,并在交互式环境中切换它们


这是我在一个项目中的做法。如果ypu将代码粘贴到


非常欢迎更优雅的解决方案。

“文本锚定”:“开始”用于将文本围绕x轴居中,我已经有了这套解决方案。我正在寻找同样的东西为y轴。。。谢谢你给我看那个网站!
// create rectangle 

var locx = 300
var locy = 200
paper.rect(locx, locy, 100,100)

// create raw text

element2 = paper.text(locx, locy, "Raphael\n \njust\nrocks")

element2.attr("text-anchor", "start")

// measure the raw text

var bbox = element2.getBBox()


// compute the scale

var scalex = 100/bbox["width"]
var scaley = 100/bbox["height"]

var translation = "s"+ scalex + "," + scaley

// scale the text
element2.transform(translation)

// measure the scaled text
var bbox = element2.getBBox()

// compute the offets of the scaled text

offsetx = locx - bbox["x"]
offsety = locy - bbox["y"]

translation = translation + "T" + offsetx + "," + offsety

// do the final translation

element2.transform(translation)