如果我使用 Raphael 创建一个Label
,默认样式是带有白色文本的黑色块。
如何更改背景框颜色,而不是文本颜色?我试过了:
paper.label(x, y, value).attr("fill", colour)
但这也填充了文本,我最终得到了不可见的文本。
我也不能简单地更改此函数中的默认颜色,因为我需要有几个不同的颜色,具体取决于它添加到的行:
正如你所注意到的,
Paper.label(x, y, value).attr(
fill : color
);
更改背景填充颜色和文本填充颜色,导致文本不可见。
Unspecified 正确解释了这是一个数组,因此每个部分都必须单独更改,如图所示。但是,他们没有提到更改更新两组属性的最简单方法,所以我想分享这个技巧。为此,请将属性更改为具有两组的数组。第一个元素是背景,第二个是文本。
Paper.label(x, y, value).attr([{
fill : backgroundColor
}, {
fill : textColor
}]);
您可以为每个部分添加任何其他适用的属性。这是一个工作示例:http: //jsfiddle.net/VzpeG/1/
I was working on a graph similar to this and used:
.attr({fill: "#EF7C4D"})
Let me know how this goes...
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/
在文本或标签上设置任何颜色都单独应用......希望这会有所帮助!
进一步挖掘......Paper.label(x,y,text)
不同于Element.label()
如果您查看源代码Paper.Label(x,y,text)
是一组矩形元素和文本元素,那么这样做.attr({fill:"SomeColor"})
适用于整个集合,因此矩形和文本共享相同的颜色(因此不可见)。
哦,是的,如果您只想更改文本颜色,请执行此操作,Raphael.g.txtattr.fill = "#yourColorCode"
但这会在所有图表和工具提示上全局更改文本颜色(似乎不是一个好主意)。
虽然Element.Label
正如文档所说,采用上下文元素并嵌入标签工具提示中,但基本上无论element
您使用什么,应用.label
都会将其嵌入到矩形中