百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>html5教程> 浅析HTML5 Canvas入门教程及实例
分享文章到:

浅析HTML5 Canvas入门教程及实例

发布时间:01/15 来源: 浏览: 关键词:
是html5新增的定义图形标签,比如图表和其他图像,您必须使用脚本来绘制图形。在画布上(Canvas)画一个红色矩形,渐变矩形,彩色矩形,和一些彩色的文字。

什么是 Canvas?

HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.
<canvas> 标签只是图形容器,您必须使用脚本来绘制图形。
你可以通过多种方法使用Canva绘制路径,盒、圆、字符以及添加图像。

浏览器支持

Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持 <canvas> 元素.
注意: Internet Explorer 8 及更早 IE 版本的浏览器不支持 <canvas> 元素.

创建一个画布(Canvas)

一个画布在网页中是一个矩形框,通过canvas> 元素来绘制.

注意: 默认情况下 <canvas> 元素没有边框和内容。
<canvas>简单实例如下:
<canvas id="myCanvas" width="200" height="100"></canvas>
注意: 标签通常需要指定一个id属性 (脚本中经常引用), width 和 height 属性定义的画布的大小.
提示:你可以在HTML页面中使用多个 <canvas> 元素.
使用 style 属性来添加边框:
实例
<canvas id="myCanvas" width="200" height="100"
style="border:1px solid #000000;">
</canvas>

使用 JavaScript 来绘制图像

canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成:
实例
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="#FF0000";
ctx.fillRect(0,0,150,75);
</script>

实例解析:

首先,找到 <canvas> 元素:
var c=document.getElementById("myCanvas");
然后,创建 context 对象:
var ctx=c.getContext("2d");
getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
下面的两行代码绘制一个红色的矩形:
ctx.fillStyle="#FF0000";
ctx.fillRect(0,0,150,75);
设置fillStyle属性可以是CSS颜色,渐变,或图案。fillStyle 默认设置是#000000(黑色)。
fillRect(x,y,width,height) 方法定义了矩形当前的填充方式。

例子:

 代码如下

<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="keywords" content="脚本小子_小贝_HTML5_canvas"/>
<meta name="description" content="脚本小子_小贝_HTML5_canvas"/>
<meta name="" content="脚本小子小贝 xiaobei qq:2801616735"/>
<title>HTML5_canvas</title>
<style>
p{
    border:1px dashed red;
    padding:5px;
}
canvas{
    border:1px solid yellow;
}
</style>
</head>

<body>
    <h2>HTML5_canvas</h2>
    <ul style="list-style:none">
        <li>1、创建canvas</li>
        <li>2、创建矩形</li>
        <li>3、创建线条</li>
        <li>4、创建文本</li>
        <li>5、创建圆形</li>
        <li>6、创建图像</li>
    </ul>
    <hr/>
    <h3>1、创建canvas</h3>
    <p>
        <canvas id="canvas">亲,你的浏览器不支持canvas.^_^</canvas>
    </p>
    <hr/>
    <h3>2、创建矩形</h3>
    <p>
        <canvas id="canvas1">亲,你的浏览器不支持canvas.^_^</canvas>
        <button onclick="func(1);">创建矩形</button>
    </p>
    <hr/>
    <h3>3、创建线条</h3>
    <p>
        <canvas id="canvas2">亲,你的浏览器不支持canvas.^_^</canvas>
        <button onclick="func(2);">创建线条</button>
    </p>
    <hr/>
    <h3>4、创建文本</h3>
    <p>
        <canvas id="canvas3">亲,你的浏览器不支持canvas.^_^</canvas>
        <button onclick="func(3);">创建文本</button>
    </p>
    <hr/>
    <h3>5、创建圆形</h3>
    <p>
        <canvas id="canvas4">亲,你的浏览器不支持canvas.^_^</canvas>
        <button onclick="func(4);">创建圆形</button>
    </p>
    <hr/>
    <h3>6、创建图像</h3>
    <p>
        <img src="canvas.png" id="img"/>
        <canvas id="canvas5">亲,你的浏览器不支持canvas.^_^</canvas>
        <button onclick="func(5);">创建图形</button>
       
    </p>
</body>
<script>
    function func(id)
    {
        var c = document.getElementById('canvas'+id);
        var ctx = c.getContext('2d');
        switch(id)
        {
            case 1:
                ctx.fillStyle = "#FF0000";
                ctx.fillRect(10,10,100,50);
            break;
            case 2:
                ctx.beginPath();
                ctx.moveTo(10,10);
                ctx.lineTo(100,100);
                ctx.stroke();
            break;
            case 3:
                ctx.font="20px Arial";
                ctx.fillText("脚本小子_小贝_HTML5_canvas",10,50);
            break;
            case 4:
                ctx.beginPath();
                ctx.arc(95,50,40,0,2*Math.PI);
                ctx.stroke();
            break;
            case 5:
                var img=document.getElementById("img");
                c.width=img.width;
                c.height=img.height;
                ctx.drawImage(img,10,10);
            break;
        }
       
    }
</script>
</html>
打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有7人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板