Hover 设置打印文本的属性?

Hover 设置打印文本的属性?,hover,raphael,attr,Hover,Raphael,Attr,我正在设计一个光滑的raphael显示,但在实例化以下内容后,我似乎无法将print()d文本元素的属性设置为悬停: var w = Raphael("weddings", 85, 30); var fonts = [0, w.getFont("helvetica-neue-thin"), w.getFont("arial")]; w.print(0, 15, "Weddings", fonts[1], 20).attr({fill: "#000000"}); 以下情况不会产生任何结果: $(

我正在设计一个光滑的raphael显示,但在实例化以下内容后,我似乎无法将print()d文本元素的属性设置为悬停:

var w = Raphael("weddings", 85, 30);
var fonts = [0, w.getFont("helvetica-neue-thin"), w.getFont("arial")];
w.print(0, 15, "Weddings", fonts[1], 20).attr({fill: "#000000"});
以下情况不会产生任何结果:

$("#weddings").hover(function () {
w.attr("color", "#000");
},
function () {
w.attr("color", "#FFFFFF");
});
我想:

w.print.attr("color", "#FFFFFF");

也许行得通,但不行。我错过了什么?非常感谢您的帮助

您是先注册字体的吗?看

然而,我有一点怀疑,您实际上不想以这种复杂的方式呈现字体,而只是想在屏幕上写入一些文本,然后在悬停时对其进行更改。如果是这样的话,有一个非常简单的方法:

var w = Raphael(0, 0, 85, 30);
var text = w.text(0, 15, "Weddings").attr({'font-family': "helvetica-neue-thin", 'text-anchor': 'start', 'fill': '#000'});

text.hover(
    function () {
        this.attr("fill", "#F00");
    },
    function () {
        this.attr("fill", "#000");
    }
 );

(由于字体不是标准字体,您仍然需要将其加载到某个位置,但这是您的事。)

好的,我让它工作了!您描述的“文本”方法以像素化的方式渲染文本,我需要抗锯齿文本。。。我确实对print方法应用了相同的逻辑,并通过元素id调用了hover,以保持悬停区域作为矩形的一致性。。。另外,我注意到我在最初的问题中将“填充”称为“颜色”,所以这是另一件值得注意的事情。。。工作起来很有魅力!谢谢