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

How to create a default attribute for text and chain additional attributes as needed in RaphaelJS

本文关键字:属性 默认 文本 创建 其他 链接 RaphaelJS      更新时间:2023-09-26

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

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

我想

你可以为某些对象使用一个对象,或者克隆为几个想法。也许这将取决于你想如何处理它的不同。这是一个示例 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);