使用Raphael JS在屏幕上浮动形状

时间:2009-08-27 22:51:19

标签: vector canvas svg raphael shapes

我正在努力让一些形状随意漂浮在屏幕上。最终,它们将相互交互,并具有onclick功能。我可以让圆圈在屏幕上渲染,但我不能让它们有动作。似乎.animate()函数不是我在这里需要的。

有谁知道我会怎么做?

这就是我所拥有的:

jQuery(function ($) {

    // Global Vars
    var items = 30,
    width = window.innerWidth,
    height = window.innerHeight,
    paper = Raphael("galaxy", width, height),
    frameRate = 100,
    i,
    galaxy = [],
    star = [],
    stars = [];

    // Do some variants for each item
    for (i = 0; i<items; i++ ) {
        stars[i] = {
            x : Math.random() * width,
            y : Math.random() * height,
            r : Math.random()*255,
            g : Math.random()*255,
            b : Math.random()*255,
            size :  Math.random() * 20
        }
    }

    // Creates canvas 320 × 200 at 10, 50
    // Creates circle at x = 50, y = 40, with radius 10
    for (i = 0; i<items; i++ ) {
        star[i] = paper.circle(stars[i].x, stars[i].y, stars[i].size);
        star[i].attr("fill", "rgb("+stars[i].r+", "+stars[i].g+", "+stars[i].b+")");
        star[i].attr("stroke", "none"); 

    }//end for

});

1 个答案:

答案 0 :(得分:3)

它可以与animate()一起使用。如果你是将此添加到上述功能:

(function anim() {
    for (i = 0; i<items; i++ ) {
         newX = Math.random() * width;
         newY = Math.random() * height;
         star[i].animate({cx: newX, cy: newY}, 1000);
    }
    setTimeout(anim, 1000);
})();

你的圈子飞来飞去。当然,要让它们真正浮动甚至互动还有很长的路要走,但这可能是一个起点。