HTML 画布 Canvas
HTML<canvas>元素用于在网页上绘制图形。
下面的图形是用<canvas>创建的。它显示四个元素:红色矩形、渐变矩形、多色矩形和多色文本。
什么是HTML画布?
HTML<canvas>元素用于通过 JavaScript 动态绘制图形。
<canvas>元素只是图形的容器。必须使用 JavaScript 来实际绘制图形。
Canvas有几种绘制路径、框、圆、文本和添加图像的方法。
浏览器支持
表中的数字指定完全支持<canvas>元素的第一个浏览器版本。
元素 | |||||
---|---|---|---|---|---|
<canvas> | 4.0 | 9.0 | 2.0 | 3.1 | 9.0 |
画布示例
画布是HTML页面上的矩形区域。默认情况下,画布没有边框和内容。
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">
你的浏览器不支持 canvas 标签.
</canvas>
</body>
</html>
注意:总是指定一个id属性(在脚本中引用),以及一个 width 和 height 属性来定义画布的大小。要添加边框,请使用 sytle 属性。
加入 javascript
画一条线
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">
你的浏览器不支持 canvas 标签.</canvas>
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.moveTo(0,0);
ctx.lineTo(200,100);
ctx.stroke();
</script>
</body>
</html>
画一条线
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">
你的浏览器不支持 canvas 标签.</canvas>
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.beginPath();
ctx.arc(95,50,40,0,2*Math.PI);
ctx.stroke();
</script>
</body>
</html>
写一段文本
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">
你的浏览器不支持 canvas 标签.</canvas>
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.font = "30px Arial";
ctx.fillText("Hello World",10,50);
</script>
</body>
</html>
画一段线性渐变
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">
你的浏览器不支持 canvas 标签.</canvas>
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
// Create gradient
var grd = ctx.createLinearGradient(0,0,200,0);
grd.addColorStop(0,"red");
grd.addColorStop(1,"white");
// Fill with gradient
ctx.fillStyle = grd;
ctx.fillRect(10,10,150,80);
</script>
</body>
</html>
画一个圆形渐变
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">
你的浏览器不支持 canvas 标签.</canvas>
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
// Create gradient
var grd = ctx.createRadialGradient(75,50,5,90,60,100);
grd.addColorStop(0,"red");
grd.addColorStop(1,"white");
// Fill with gradient
ctx.fillStyle = grd;
ctx.fillRect(10,10,150,80);
</script>
</body>
</html>
Canvas - 图像
把一幅图像放置到画布上, 使用方法: drawImage(image,x,y)
<!DOCTYPE html>
<html>
<body>
<p>Image to use:</p>
<img id="myPic" src="/images/demo.png" alt="The Demo" width="520" height="320">
<p>Canvas to fill:</p>
<canvas id="myCanvas" width="550" height="350"
style="border:1px solid #d3d3d3;">
你的浏览器不支持 canvas 标签.</canvas>
<p><button onclick="myCanvas()">尝试一下</button></p>
<script>
function myCanvas() {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("myPic");
ctx.drawImage(img,10,10);
}
</script>
</body>
</html>