js 怎么给canvas里画多个矩形并分别给它们加层级

JavaScript09

js 怎么给canvas里画多个矩形并分别给它们加层级,第1张

本文实例讲述了js+canvas绘制矩形的方法。分享给大家供大家参考,具体如下:

运行效果截图如下:

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>canvas绘制矩形</title>

<script type="text/javascript" >

function draw(id) {

var canvas = document.getElementById("canvas")

if (canvas) {

var context = canvas.getContext("2d")

context.fillStyle = "#DDDDDD"

context.fillRect(0, 0, 400, 400)

context.strokeStyle = "black"

context.fillStyle = "gray"

context.lineWidth = 5

context.fillRect(0,0,200,300)

context.strokeRect(0,0,200,200)

} else {

return

}

}

function drawBorder(id) {

var canvas = document.getElementById("canvas2")

if (canvas) {

var context = canvas.getContext("2d")

context.fillStyle = "red"

context.strokeStyle = "black"

context.lineWidth = 5

context.fillRect(0,0, 300, 200)

context.strokeRect(0,0,300,200)

} else {

return

}

}

window.onload = function () {

draw("canvas")

drawBorder("canvas2")

}

</script>

</head>

<body>

<canvas id="canvas" width="400" style="background:red" height="400"></canvas>

<hr />

<canvas id="canvas2" width="400" height="400"></canvas>

</body>

</html>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html charset=utf-8" />

<title>_</title>

<script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>

</head>

<script type="text/javascript">

$(function(){

var canvas = document.getElementById("canvas")

var ctx = canvas.getContext("2d")

var img = new Image()

img.src = "https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png"

img.onload = function(){

draw(this, 10, 10)

}

function draw(img, x, y){

if(img){

this.img = img

this.x = x

this.y = y

this.width = img.width

this.height = img.height

}else{

if(!this.img) return

ctx.clearRect(this.x, this.y, this.x + this.width, this.y + this.height)

img = this.img

x += this.x

y += this.y

this.x = x

this.y = y

}

ctx.drawImage(img, x, y)

}

var size = 5

$(document.body).keydown(function(event){

switch(event.keyCode){

case 37: draw(null, -size, 0) break

case 38: draw(null, 0, -size) break

case 39: draw(null, size, 0) break

case 40: draw(null, 0, size) break

}

})

})

</script>

<body>

<canvas id="canvas" width="1000" height="500"></canvas>

</body>

</html>