Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 改变拉斐尔作品的背景色;标签";_Javascript_Raphael_Graphael - Fatal编程技术网

Javascript 改变拉斐尔作品的背景色;标签";

Javascript 改变拉斐尔作品的背景色;标签";,javascript,raphael,graphael,Javascript,Raphael,Graphael,如果我使用Raphael创建一个图形,默认样式是带有白色文本的黑色块 如何更改背景框颜色,而不是文本颜色?我试过: paper.label(x, y, value).attr("fill", colour) 但这也填满了文本,我最终得到了看不见的文本 我也不能简单地更改中的默认颜色,因为我需要根据添加到的行使用一些不同的颜色: 我正在制作一个类似于此的图形,并使用: .attr({fill:#EF7C4D}) 让我知道这是怎么回事 var r = Raphael('divID', 320, 2

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

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

paper.label(x, y, value).attr("fill", colour)
但这也填满了文本,我最终得到了看不见的文本

我也不能简单地更改中的默认颜色,因为我需要根据添加到的行使用一些不同的颜色:


我正在制作一个类似于此的图形,并使用:

.attr({fill:#EF7C4D})

让我知道这是怎么回事

var r = Raphael('divID', 320, 220);
text = r.text(100,100,"Hello").attr({fill:"#fff"});​​​​
text.label().attr({fill:"#f00"});
这是一把小提琴

设置文本或标签上的任何颜色都将分别应用…希望这有帮助

深入挖掘…
Paper.label(x,y,text)
不同于
Element.label()

如果您查看源代码
Paper.Label(x,y,text)
是一组矩形元素和文本元素,因此
.attr({fill:“SomeColor”})
适用于整个集合,因此矩形和文本共享相同的颜色(因此不可见)

哦,是的,如果您只想更改文本颜色,请执行以下操作:
Raphael.g.txtttr.fill=“#yourColorCode”
,但这会全局更改所有图表和工具提示上的文本颜色(这似乎不是一个好主意)

Element.Label
正如文档所说,它将上下文元素嵌入标签工具提示中,基本上无论您使用什么
Element
,应用
.Label
都会将其嵌入矩形中,正如您所注意到的那样

Paper.label(x, y, value).attr(
    fill : color
);
同时更改背景填充颜色和文本填充颜色,导致文本不可见

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

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

可以向每个零件添加任何其他适用属性。这里有一个工作示例:

谢谢Rob,尽管我提到我已经尝试过这个,发现它也填充了文本。还有其他想法吗?谢谢,我认为这更准确地回答了这个问题。