如何在RaphaelJS中根据需要为文本创建默认属性并链接其他属性

时间:2013-10-28 17:48:15

标签: javascript raphael

我还是javascript的新手,甚至是Raphael-JS的新手。我需要简化我的代码并删除任何冗余(见下文)。我的许多变量基本相同,只有一个或两个属性。

var textLine1 = paper3.text(19, 40, "TODAY'S RATES.").attr({
    'text-anchor':'start',
    'font-family' : 'Arial, sans-serif',
    fill: "#ffffff"
});
var textLine3 = paper3.text(19, 210, "RATE JUMBO").attr({
    'text-anchor':'start',
    'font-family' : 'Arial, sans-serif',
    fill: "#ffffff",
    "font-size": 13
}); 

有没有办法可以为所有文本属性设置默认值,并将链特定属性设置为现有属性?如果不是这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

我猜你可以为某些人使用一个对象,或者克隆为一些想法。也许这将取决于您想要如何处理它的变化。这是一个例子jsbin虽然http://jsbin.com/ujavErA/1/edit?html,js,output(小提琴不起作用)。

var textLine1 = paper.text(19, 40, "TODAY'S RATES.").attr({
    'text-anchor':'start',
    'font-family' : 'Arial, sans-serif',
    fill: "#444444"
});

var textLine3 = paper.text(19, 60, "RATE JUMBO").attr({
    'text-anchor':'start',
    'font-family' : 'Arial, sans-serif',
    fill: "#444444",
    "font-size": 13
}); 

var textLine4 = textLine1.clone().attr({ x: 19, y : 80, text : 'Some clone stuff' });

var defaults = {

  'text-anchor':'start',
  'font-family' : 'Arial, sans-serif',
  'fill': "#444444",
  "font-size": 13
};


var textLine5 = paper.text(19,100,'Some more stuff with an object as default').attr(   defaults );

var textLine6 = paper.text(19,120, 'Some more stuff').attr( defaults ).attr("font-size", 16);