2

我正在努力让一些形状随机漂浮在屏幕上。最终它们将相互交互,并具有 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

});
4

1 回答 1

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);
})();

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

于 2009-08-28T07:31:10.643 回答