我正在制作一个光滑的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");
可能有效,但事实并非如此。我在这里错过了一些东西?非常感谢任何帮助!
答案 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");
}
);
(你仍然需要在某个地方加载字体,因为它不是标准的,但那是你的事。)