3

如果我使用 Raphael 创建一个Label,默认样式是带有白色文本的黑色块。

如何更改背景框颜色,而不是文本颜色?我试过了:

paper.label(x, y, value).attr("fill", colour)

但这也填充了文本,我最终得到了不可见的文本。

我也不能简单地更改此函数中的默认颜色,因为我需要有几个不同的颜色,具体取决于它添加到的行:

在此处输入图像描述

4

3 回答 3

6

正如你所注意到的,

Paper.label(x, y, value).attr(
    fill : color
);

更改背景填充颜色和文本填充颜色,导致文本不可见。

Unspecified 正确解释了这是一个数组,因此每个部分都必须单独更改,如图所示。但是,他们没有提到更改更新两组属性的最简单方法,所以我想分享这个技巧。为此,请将属性更改为具有两组的数组。第一个元素是背景,第二个是文本。

Paper.label(x, y, value).attr([{
    fill : backgroundColor
}, {
    fill : textColor
}]);

您可以为每个部分添加任何其他适用的属性。这是一个工作示例:http: //jsfiddle.net/VzpeG/1/

于 2012-10-19T02:12:22.180 回答
0

I was working on a graph similar to this and used:

.attr({fill: "#EF7C4D"})

Let me know how this goes...

于 2012-10-10T00:18:53.203 回答
0
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都会将其嵌入到矩形中

于 2012-10-10T06:00:39.963 回答