HTML5-canvas-基础篇

<canvas>新元素

 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.

<canvas> 标签只是图形容器,您必须使用脚本来绘制图形。

你可以通过多种方法使用Canva绘制路径,盒、圆、字符以及添加图像。

 1181434-20170615102244790-380226457.png

  注意: 默认情况下 <canvas> 元素没有边框和内容。

  画方

<!--fillStyle是填充样式,如果不设置fillStyle属性,默认填充色为黑色,fillRect是画一个矩形,参数为X,Y,Width,Height-->
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" name="author" content="赵慧娟">
        <title></title>
        <script src="Scripts/jquery-1.10.2.js"></script>
        <script type="text/javascript">
            $(function(){
                var canvas=document.getElementById("myCanvas")
                var ctx=canvas.getContext("2d");
                ctx.fillStyle="deeppink";
                ctx.fillRect(10,10,100,100);
         //ctx.moveTo(0,0);    //定义开始坐标
         //ctx.lineTo(100,100);  //定义结束坐标
         //ctx.stroke();      //绘制线条
            })
        </script>
    </head>
    <body>
        <canvas id="myCanvas" width="100" height="100"></canvas>
    </body>
</html>

运行结果:

1181434-20170615103727259-668113829.png

  画圆

<!--arc画圆,参数是X,Y,半径,起始角,结束角,顺时针/逆时针(可选)XY指的是圆点的距离-->
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" name="author" content="赵慧娟">
        <title></title>
        <script src="Scripts/jquery-1.10.2.js"></script>
        <script type="text/javascript">
            $(function(){
                var canvas=document.getElementById("myCanvas")
                var ctx=canvas.getContext("2d");
                ctx.fillStyle="deeppink";
                ctx.arc(50,50,50,0,2*Math.PI);
                ctx.stroke();
         //ctx.fillText("Hello World",10,50);  //绘制实心字体
         //ctx.strokeText("Hello World",10,50); //绘制空心字体
})
</script> <style type="text/css"> canvas{ border: 1px solid #000; } </style> </head> <body> <canvas id="myCanvas" width="100" height="100"></canvas> </body> </html>

运行结果:

1181434-20170615111450321-898791782.png

  渐变

  createLinearGradient(x,y,x1,y1) - 创建线条渐变

  createRadialGradient(x,y,r,x1,y1,r1) - 创建一个径向/圆渐变

// 创建渐变
var grd=ctx.createLinearGradient(0,0,200,0);
grd.addColorStop(0,"red");
grd.addColorStop(1,"blue");
 
// 填充渐变
ctx.fillStyle=grd;
ctx.fillRect(10,10,150,80);

运行结果:

1181434-20170615120530290-2055198250.png

  径向/圆渐变

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
 
// 创建渐变
var grd=ctx.createRadialGradient(75,50,5,90,60,100);
grd.addColorStop(0,"red");
grd.addColorStop(1,"white");
 
// 填充渐变
ctx.fillStyle=grd;
ctx.fillRect(10,10,150,80);

运行结果:

1181434-20170615120944962-989841657.png

图像

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" name="author" content="赵慧娟">
        <title></title>
        <script src="Scripts/jquery-1.10.2.js"></script>
        <style type="text/css">
            canvas{
                border: 1px solid #000;
            }
            #flower{
                border: 1px solid #000;
                width: 100px;
                height: 100px;
            }
        </style>
    </head>
    <body>
        <img src="img/a.ico" id="flower" />
        <canvas id="myCanvas" width="100" height="100"></canvas>
        <script type="text/javascript">
            $(function(){
                var canvas=document.getElementById("myCanvas")
                var ctx=canvas.getContext("2d");var img=document.getElementById("flower");
                img.onload=function(){
                    ctx.drawImage(img,20,20,80,80);  //drawImage(对象,X,Y,W,H)
                }
            })
        </script>
    </body>
</html>

运行结果:

1181434-20170615131537978-325136486.png(右图为canvas图像)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值