HTML5中的Canvas


1.创建Canvas:

一般在页面上写入Canvas元素,使用js代码创建Canvas。

网页代码:

<body onload="draw('canvas');">
<canvas id="canvas" width="500" height="350"></canvas>
</body>

js代码:


var context;
function draw(id){
    //获取canvas组件的对象
    var canvas=document.getElementById(id);
    //获取上下文对象,执行画的动作
    context=canvas.getContext('2d');

    ...
    }

注:别忘了导入js文件


2.画矩形:

var context;
function draw(id){
    //获取canvas组件的对象
    var canvas=document.getElementById(id);
    //获取上下文对象,执行画的动作
    context=canvas.getContext('2d');


    //填充颜色
    context.fillStyle="green";
    //边框颜色
    context.strokeStyle="#fff";
    context.lineWidth=5;
    //画一个带填充颜色的矩形,四个参数分别为 X坐标,Y坐标,宽,高
    context.fillRect(0,0,400,300);
    //画一个不带填充颜色的矩形,四个参数分别为 X坐标,Y坐标,宽,高
    context.strokeRect(50,50,120,80);
    }

3.画圆:

var context;
function draw(id){
    //获取canvas组件的对象
    var canvas=document.getElementById(id);
    //获取上下文对象,执行画的动作
    context=canvas.getContext('2d');
    for(var i=0;i<10;i++){
        //开始绘制路径
        context.beginPath();
        //正在绘制,五个参数说明:圆点X坐标,圆点Y坐标,垂直坐标,开始角度,结束角度
        //是否逆时针
        context.arc(i*25,i*25,i*10,0,Math.PI*2,true);
        //关闭绘制路径
        context.closePath();
        //设置填充颜色
        context.fillStyle="rgba(255,0,0,0.25)";
        //绘制填充圆
        context.fill();

        context.strokeStyle="rgba(255,0,0,0.25)";
        //绘制不填充圆
        context.stroke();
    }
}

4.写字:

var context;
function draw(id){
    //获取canvas组件的对象
    var canvas=document.getElementById(id);
    //获取上下文对象
    context=canvas.getContext('2d');
    //字型  大小  字体
    context.font="bold 40px '微软雅黑'";
    //垂直对齐方式
    context.textBaseline='middle';
    //水平对齐方式
    context.textAlign='start';
    context.fillStyle='#fff';
    // 后两个参数表示位置,三个参数分别是要显示的内容,X坐标,Y坐标
    context.fillText('正义狂哥',0,0);
    context.strokeText('正义狂哥',0,40);
}

注:
1、fillText,strokeText还有最后一个参数,可用来防止文字溢出
2、textBaseline属性图解:

这里写图片描述

3、textAlign属性图解:

这里写图片描述


5.动画:

动画只是把静态的图形通过java代码动起来而已

动画中常用的方法:
1.setInterval:

间隔一定时间执行某个方法
例如:

setInterval(painting,100);
/*间隔100毫秒执行painting方法*/
2.clearRect:

清除某一区域所画的
例如:

context.clearRect(0,0,500,350);
//画一个以左上角坐标为(0.0),宽500,高300的橡皮,然后擦除这块区域

动画小案例:

var i;
var context;
function draw(id){
    //获取canvas组件的对象
    var canvas=document.getElementById(id);
    //获取上下文对象
    context=canvas.getContext('2d');
    context.fillStyle="green";
    context.fillRect(0,0,10,10);
    setInterval(painting,100);
    i=0;

}

function painting(){
    context.fillStyle="green";
    context.fillRect(i,0,10,10);
    i+=20;
    if(i>500){
        context.clearRect(0,0,500,350);
        i=0;
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值