需要绘制/动画一个小的正方形背景图像,然后在x和y上重复它



基本上,我想画一个小正方形,然后再画一个,然后再画一个,直到它在水平和垂直方向上填充屏幕。我想实际看到每个方块被绘制的动画。

我不知道如何做到这一点。我知道html画布有一个createppattern功能,但我认为使用图像,我需要这些方块链一个接一个(不是一次全部)。

任何想法?

使用jquery, canvas, svg, css3, html5或流行的svg或js库的解决方案是好的。

这是您想要的结果吗?

<html>
<head>
<script>
var sq_size=10;
var sq_pos_x = 0-sq_size;//see comment in drawtick
var sq_pos_y = 0;
var can_width=800;
var can_height=600;
var tmr;
function startTimer(){
tmr = setInterval(function(){drawtick()}, 20);
}
function drawtick(){
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
//the first drawn square should not be on x+ sq_size
// instead of adding an extra if statement, I just initialized it on -sq_size
if(sq_pos_x+sq_size>=can_width)              {sq_pos_y=sq_pos_y+sq_size;sq_pos_x=0}else{sq_pos_x=sq_pos_x+sq_size;}
if(sq_pos_y>=can_height){clearInterval(tmr);alert('loop ended');}
ctx.rect(sq_pos_x,sq_pos_y,sq_size,sq_size);
ctx.stroke();
}
</script>
</head>
<body onload="startTimer()">
<canvas id="myCanvas" width="800" height="600" style="border:1px solid #000000;">
Your browser does not support the HTML5 canvas tag.
</canvas>
</body>
</html>

http://jsfiddle.net/kKyA5/

这都取决于绘制动画

你应该尝试一下canvas,它是面向对象的javascript,它基于html5 canvas标签来绘制,它将允许你做一些非常整洁的东西,并处理动画。基本上你需要用一个像这样的id来定义canvas标签:

<canvas id="canvas" width="354" height="100"></canvas>

然后实例化核心对象:

var canvas = oCanvas.create({
    canvas: "#canvas",
    background: "#0cc"
});

之后,你可以像这样画正方形:

var limit = 50;
var reduction = 2; //minus two pixels for iteration
var width = 202;
var height = 202;
for (var i = 1; i <= limit; ++i){
var rectangle = canvas.display.rectangle({
    x: 77,
    y: 77,
    width: width,
    height: height,
    fill: "#0aa"
    });
width = width - reduction;
height = width - reduction;
canvas.addChild(rectangle,false);
}

,然后一次全部画出来:

canvas.draw.redraw();

或者你也可以把它做成动画

有很好的文档

相关内容

最新更新