canvas绘制的小效果

闲来无事,随便写的一个canvas绘图的小效果,主要是好玩,话不多说,直接上代码:

View Code
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');  
var arr = [];
var brr = ['red', 'blue', 'yellow', 'white', '#EEEEFF', 'gold', 'pink'];
var crr = [];
var t = null;
cavnas.addEventListener('click',draw,false);
    function draw(e) {
        if (t) { clearTimeout(t) };
        arr.push({ x: e.clientX, y: e.clientY, ind: 0, d: false });
            var n = Math.ceil(Math.random() * 8) - 1;
            crr.push(brr[n]);
            function set() {
                context.clearRect(0, 0, canvas.width, canvas.height);
                t = setTimeout(set, 20);
            for (var i = 0; i < arr.length; i++) {
                (function (j) {
                    if (arr[i].d == false) { arr[i].ind += 1; };
                    if (arr[i].d == true) { arr[i].ind -= 1; };
                    if (arr[i].ind >= 80) { arr[i].d = true; };
                    if (arr[i].ind <= 0) { arr[i].d = false; };
                    context.beginPath();
                    context.fillStyle = crr[i];
                    context.arc(arr[i].x, arr[i].y, arr[i].ind, 0, Math.PI * 2, true);
                    context.fill();
                    context.closePath();
                })(i);
            }
        }
        set();
    }

posted @ 2012-12-21 20:50  beat it  阅读(130)  评论(0编辑  收藏  举报