更新文本属性时元素移位

时间:2015-04-03 05:58:38

标签: javascript text svg raphael

这就是我正在看的内容。我有一个文本元素:

var label = paper.text(100, 100, "Test String").attr({some attrs});

它出现在我想要的地方,一切都很好。当我稍后更新text属性时会出现问题。

label.attr({text: "My new label text"});

当我这样做时,文本元素在正y方向上移动了一小部分,因此向下移动。

当我检查更改前后的x和y位置值时,它们是相同的。我不知道该怎么做。我注意到它不会发生在朋友浏览器Chrome中,这与我正在使用的浏览器相同。

有什么想法吗?我每次更改文本attr时都不必更改y值。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我不知道这对您的项目是否可行,但您可以尝试将raphael元素与标准html元素结合使用。您的标签可以是使用jQuery定位和设置样式的div。如果需要动态更改标签的文本,可以使用div的jQuery .html()属性,这不会改变其位置。这可能不是最优雅的解决方案,但集成jquery和raphael在大多数情况下都能很好地工作,并保证跨浏览器的文本定位/样式的标准化。