0

我对 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
}); 

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

4

1 回答 1

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);
于 2013-10-28T22:24:43.107 回答