修改Raphael.js中的对象

时间:2012-04-06 18:58:49

标签: javascript dom raphael

如果我有像http://raphaeljs.com/ball.html之类的项目,如何通过DOM修改它,以更改特定实例的颜色?

EX:

Raphael.fn.ball = function (x, y, r, hue) {
        hue = hue || 0;
        return this.set(
            this.ellipse(x, y + r - r / 5, r, r / 2).attr({fill: "rhsb(" + hue + ", 1, .25)-hsb(" + hue + ", 1, .25)", stroke: "none", opacity: 0}),
            this.ellipse(x, y, r, r).attr({fill: "r(.5,.9)hsb(" + hue + ", 1, .75)-hsb(" + hue + ", .5, .25)", stroke: "none"}),
            this.ellipse(x, y, r - r / 5, r - r / 20).attr({stroke: "none", fill: "r(.5,.1)#ccc-#ccc", opacity: 0})
        );
    };

function drawBall(div_id, color) {
        var X = Raphael(div_id), x = 100, y = 80, r = 50;
        X.ball(x, y, r, color);
    }

我在文档中创建了一个“Ball”(document.write(active_div,0.3459912),现在我想更改颜色。

使用相同的div调用drawBall,只需在DIV中创建另一个“球”。

2 个答案:

答案 0 :(得分:1)

尝试

var hue = hue;  
X.attr("fill", r(.3,.25) white-" + hue);

您可以使用yellow之类的任何颜色或#00CC33之类的颜色代码作为色调 Demo

答案 1 :(得分:0)

这个怎么样?

X.attr("fill", newColor);

其中newColor是您要将其颜色更改为变量的变量的名称。