如果我使用Raphael創建Label
,默認樣式是帶有白色文本的黑色塊。更改Raphael「標籤」的背景顏色
如何更改背景框顏色,但不更改文字顏色?我試過了:
paper.label(x, y, value).attr("fill", colour)
但是這也填充了文本,我最終以不可見的文本。
我也不能簡單地改變this function默認的顏色,因爲我需要根據線路上的一些不同的,它的加入:
如果我使用Raphael創建Label
,默認樣式是帶有白色文本的黑色塊。更改Raphael「標籤」的背景顏色
如何更改背景框顏色,但不更改文字顏色?我試過了:
paper.label(x, y, value).attr("fill", colour)
但是這也填充了文本,我最終以不可見的文本。
我也不能簡單地改變this function默認的顏色,因爲我需要根據線路上的一些不同的,它的加入:
當你注意到裏面,
Paper.label(x, y, value).attr(
fill : color
);
會同時更改背景填充顏色和文本填充顏色,從而導致不可見的文本。
未指定正確解釋說這是一個數組,因此每個部分都必須單獨更改,如他們所示。但是,他們沒有提到更新兩套屬性的最簡單方法,所以我想分享這個提示。爲了做到這一點,請將屬性更改爲具有兩個集合的數組。第一個元素是背景,第二個元素是文本。
Paper.label(x, y, value).attr([{
fill : backgroundColor
}, {
fill : textColor
}]);
您可以添加任何其他適用的屬性,每一個部分。這裏是一個工作示例:http://jsfiddle.net/VzpeG/1/
var r = Raphael('divID', 320, 220);
text = r.text(100,100,"Hello").attr({fill:"#fff"});
text.label().attr({fill:"#f00"});
這裏的工作小提琴http://jsfiddle.net/vpGyL/216/
設置文本或標籤上都適用單獨...希望這可以幫助任何顏色!
在furthur挖... Paper.label(x,y,text)
爲Element.label()
不同。如果你看一下源代碼Paper.Label(x,y,text)
是一組矩形元素&文本元素,這樣做.attr({fill:"SomeColor"})
適用於整個組,因此這兩個矩形&文本共享相同的顏色(因此隱形)。
噢是啊如果你只是想改變文字顏色做這個Raphael.g.txtattr.fill = "#yourColorCode"
但是這改變了所有圖表和工具提示全局文字顏色(似乎不是一個好主意)。
雖然Element.Label
的文件說是取上下文元素在標籤提示&嵌入,基本上你使用任何element
,應用.label
將它嵌入一個矩形
謝謝,我認爲這更準確地回答了這個問題。 – Marty