2011-07-07 62 views
4

我想做一個簡單的縮寫。只是一個帶有下劃線的文本,如html中的標籤。我如何在Raphael JS中做到這一點?帶有拉斐爾下劃線的文本JS

+1

http://groups.google.com/group/raphaeljs/browse_thread/thread/c42a3d2503fcbbea上的相關討論 – beldaz

回答

6

這是應該做的一個功能你以後:

function underlineText(textElement) { 
    var textBBox = textElement.getBBox(); 
var textUnderline = canvas.path("M"+textBBox.x+" "+(textBBox.y+textBBox.height)+"L"+(textBBox.x+textBBox.width)+" "+(textBBox.y+textBBox.height)); 
} 

var textElement = canvas.text(100,100,"hello world"); 
underlineText(textElement); 
+0

只需注意這一點,如果您旋轉了文本,它將無法按預期工作。仍然,一個優雅的解決方案 – SimonR

0

我覺得以前的答案是不再好(因爲對我來說這是不工作的話),但有一些技巧,我把它當作魅力工作。

這就是:

var underlineText = function() { 
var textBBox = textElement.getBBox(); 
var textUnderline = paper.path("M"+textBBox.x+" "+(textBBox.y+textBBox.height)+"L"+(textBBox.x+textBBox.width)+" "+(textBBox.y+textBBox.height));}; 

underlineText(textElement); 

乾杯!

www.stefanomoscardini.it

3

Works的SVG畫布,不與VML(< = IE8)測試:

var text=paper.text(...); 
if (text.node){ 
    $(text.node).css('text-decoration','underline'); 
} 

可以設置一個SVG元素上的任何CSS3文本屬性,和CSS2屬性在VML元素上。

+0

這是唯一可行的答案!謝謝。這應該被接受 – Kayvar