2012-01-19 41 views
0

我設置了HTML5畫布的字體:的Javascript帆布 - 獲取簡單的字體屬性

context.font = "italic bold 24px Verdana"; 

有沒有辦法單獨檢索這些屬性像CSS?

我想是這樣的:

context.fontStyle,context.fontWeight,context.fontSize,context.fontFamily

回答

0

更新

你可以使用這個庫來設置各種字體屬性在畫布上呈現文字。

http://txtjs.com/

原帖

畫布背景字體的屬性不存在(至少目前還沒有)。

相反,您可以創建字符串變量,然後將它們連接在一起。

var fontStyle = "italic"; 
var fontWeight = "bold"; 
var fontSize = "24px"; 
var fontFamily = "Verdana"; 
var b = " "; 

context.font = fontStyle + b + fontWeight + b + fontSize + b + fontFamily; 


這個例子顯示瞭如何使用對象變量:

var myFont = { 
    style: "italic", 
    weight: "bold", 
    size: "24px", 
    family: "Verdana" 
} 

var b = " "; 

function canvasFont(font) { 
    context.font = font.style + b + font.weight + b + font.size + b + font.family; 
} 

myFont.size = "20px"; 
canvasFont(myFont); 

這裏是一個JS Fiddle Example

+1

是的,我可以通過這種方式設置屬性。但我的問題是,我想寫一個函數,例如設置只有FontSize爲20px,不知道哪個fontFamily和fontStyle目前在上下文中。 – Dennis

+0

我想用context.drawText(x,y,text,options)等一些有用的函數來擴展canvas上下文。所以用戶可以例如在腳本的開頭處設置context.font =「10px Arial」。然後使用context.drawText(10,10,「text」,{fontSize:「12px」})。這樣,每次他繪製文本時,他都不需要指定fontFamily。 – Dennis

+0

對不起,這個畫布字體讓我感到困惑。你的想法是對的。謝謝! – Dennis