2015-04-03 78 views
0

这是我正在看。我有一个文本元素:元素更新时更新文字属性

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

看来,我想它,一切都很好。当我稍后更新文本属性时会出现问题。

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

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

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

任何想法?每次改变文本属性时,我宁愿不必改变y值。

在此先感谢您的帮助!

+0

您是否使用其他浏览器测试了这个?请提供一个演示效果的小提琴或plunk。 – altocumulus 2015-04-03 20:29:19

回答

0

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