2012-10-11 31 views
0

這與前面的問題有關,令人驚訝的是,我找不到在線示例。我想通過ExpressionEngine中的嵌入傳遞一個字符串,並且我希望我的矩形按鈕基於通過嵌入傳遞的文本的大小進行水平擴展。在Raphael中,文本是否具有getWidth方法的等價物?在JS Raphael庫中根據文本大小動態調整矩形或容器的大小

可能有人請提供基於以下示例代碼:

var contactTextPara = "{embed:quote}"; 
var rectHeight = 45; 
var rectWidth; 
// Create an object group 
p.setStart(); 

var contactText = p.text(11,22,contactTextPara); 
var contactRect= p.rect(0, 0, rectWidth, rectHeight); 

UPDATE:使用getBBox()方法,我能夠實現一些相對哪些值是絕對有幫助的。但是,我得到的價值並不是特別有用。

例如,我使用120px x 45px作爲我的上一個矩形的尺寸,它適合我的文本邊界,但使用getBBox()生成的新矩形的尺寸分別爲大約27px x 12px。

我應該使用乘法器嗎?

UPDATE2:這顯然是由於我還沒有應用我的屬性。但是,我仍然需要幫助創建一個美觀的文本框。

+0

經過一番搜索多,我越來越懷疑有做的getWidth拉斐爾的文本對象上的有效途徑。 –

回答

1

您需要使用.getBBox()

var contactText = p.text(11,22,contactTextPara); 
var dimensions = contactText.getBBox(); 
var contactRect= p.rect(0, 0, dimensions.width, dimensions.height); 
+0

感謝您的幫助,但請參閱上面(更新) –

+0

其實,您知道這可能是事實,我還沒有添加屬性! –

+0

我想我可以只使用偏移值與getBBox()方法 –