HTML5新标签-canvas

HTML5新标签canvas,绘图技术

浏览器兼容兼容问题

IE9以上才支持canvas,目前其他流行浏览器都支持

移动端兼容非常理想可以随便使用

2d的支持的都非常好,3d(webgl)IE11才支持

为避免浏览器不兼容做好进行友好提示,提示内容只会在浏览器不支持情况下才显示

<canvas id="cavsElem">
	您当前的浏览器不支持canvas,请升级浏览器后再访问
</canvas>

创建画布

在页面中创建canvas与其他元素一样,只需要添加一个标记即可,该元素默认狂高为300*150,不可以通过css样式进行改变,只能在行内书写改变其宽高

绘制路线

我们作画不可能只画一条直线,所以在此我先说一个把各各路线或者区域隔开的方法,使之不会相互影响

我们作画肯定需要画笔把,在浏览器上也一样

第一步获取画布,获得画笔

var ele_canvas=document.querySelector('canvas');
var myCan=ele_canvas.getContext('2d');

第二步直接区分每块区域

//创建区域
myCan.beginPath();
//关闭当前区域
myCan.closePath();

第三步在closePath();之前开始作画

路径的起点终点,闭合(路线会自己闭合)

//创建区域
myCan.beginPath();
myCan.moveTo(x,y);//起点,x,y为坐标,提示原点为左上角
myCan.lineTo(x,y);//终点

//关闭当前区域
myCan.closePath();
//闭合路径
myCan.stroke();

我们都可以画线条了那我们的画笔当然也可以换颜色和粗细了,

在绘画之前,beginPath()之后可以用来定义不同区域的线条颜色,线条粗细,和填充颜色

//定义线条颜色
myCan.strokeStyle='red';
//定义线条粗细
myCan.lineWidth=4;//值不可以带单位,且要大于0
//填充颜色
myCan.fillStyle="springgreen";
//调用填充
myCan.fill();//需要手动调用一下

快速绘制矩形rect()方法

myCan.rect(x,y,width,height);
//	坐标原点(也就是矩形的左上角)、宽、高

清除矩形

myCan.clearRect(x,y,width,height);
//被清除后会变成白色,但是如果多个部分叠加那另说

快速建立描边矩形:

myCan.strokeRect(x,y,width,height);

快速建立秒填充矩形

myCan.fillRect(x,y,width,height);

绘制圆弧 arc()用于创建圆或部分圆

语法

myCan.arc(x,y,r,start,end,true/false);
//坐标,半径,开始弧度,结束弧度,是否反向连接
//这里是要用弧度的而不是角度
//弧度等于角度*Math.PI/180;

绘制文本

填充文本:

fillText(text,x,y[,maxWidth]);

myCan.fillText('hello world',10,50);
//maxWidth是最大宽度,是选填项

绘制文本边框

strokeText(text,x,y[,maxWidth]);

文本样式 font=value

myCan.font='700 48px 华文行楷';

文本对齐方式:

//textAlign=value
myCan.textAlign = "left";
myCan.fillText("left-align", 150, 40);
//上一句是用来定义文本的排列方式的
//后者使用来定义文本,在哪里,多少,排列的
//两者组合的意思是文本left-align在x轴150px位置的竖线(文本先居中然后)左边是
//40px的距离

绘制图像

myCan.drawImage(img,x,y);
myCan.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);
//sx,sy裁剪的左上角,swidth,sheight要裁剪的宽度和高度

补充需要等待图片加载文笔才可以加载到convas画布里面所以许哟啊有个加载事件

第一种方式:

 var img = document.getElementById("imgId");
	img.onload = function(){  //图片加载完成后,执行此方法
   cxt.drawImage(img, 10, 10);
 }

第二种方式:

var img = document.createElement("img");
    	img.src = "img/a.jpg";
    	img.alt = "谁笑谁是小狗";
    	img.onload = function(){  //图片加载完成后,执行此方法
    		cxt.drawImage(img, 10, 10);
 }

第三种方式:

  var img = new Image();//这个就是 img标签的dom对象
    img.src = "imgs/arc.gif";
    img.alt = "谁笑谁是小狗";
    img.onload = function() {  //图片加载完成后,执行此方法
        cxt.drawImage(img, 10, 10);
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值