设置打印文本的attr?

时间:2013-01-27 18:54:54

标签: hover raphael attr

我正在制作一个光滑的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");

可能有效,但事实并非如此。我在这里错过了一些东西?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您是否先注册了字体?请参阅.registerFont() function

但是,我有一种微弱的怀疑,你实际上并不想以这种复杂的方式渲染字体,而只是想在屏幕上写一些文字,然后在悬停时改变它。如果是这样,那就有一种更简单的方式:

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

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