0

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

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");

可能工作,但它没有。我在这里遗漏了什么?任何帮助是极大的赞赏!

4

1 回答 1

0

你先注册字体了吗?请参阅.registerFont() 函数

然而,我有一个微弱的怀疑,你实际上并不想以这种复杂的方式呈现字体,而只是想在屏幕上写一些文本,然后在悬停时改变它。如果是这样,有一个无限简单的方法:

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");
    }
 );

(你仍然需要在某处加载字体,因为它不是标准的,但那是你的事。)

于 2013-01-27T19:30:16.187 回答