HTML5 — canvas

本文介绍了HTML5的最新特性,如新标签<nav>至<figure>的使用,必填属性required的应用,以及canvas技术的基础介绍,包括绘制直线、矩形和弧度,以及与SVG的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、html5是什么?

        html5是html的一个版本(最新),它在html4的基础上进行了修正,并且提供了一些新技术,包括本地存储(sessionStorage、localStorage)、canvas、离线缓存、websocket等。

二、一阶段html5的内容

        新的标签:     

nav
header
section
footer
figure
video
audio

        新的属性:

placeholder    提示文字

required    必须的
例:<input type="text" required>    //submit验证不能为空

autocomplete
pattern    正则

        新的值:

input type属性:
    color
    email
    number
    ...

三、canvas介绍

1、canvas是什么?

        HTML<canvas>标签用于通过脚本(通常是JavaScript)动态绘制图形。

2、canvas的使用

        1)、html中定义一个canvas标签

<canvas id = "myCanvas" height="" width=""></canvas>

注:canvas的宽高在样式里面设置无效,只能在属性里面设置

        2)、js中获取canvas,得到canvas上下文,调用对应的属性和方法

let context = $("#mycanvas").getContext("2d");

四、canvas绘制图形

        1、绘制直线

function drawLine(){
    context.moveTo(0,0);    //设置起点x,y
    context.lineTo(500,300);    
    context.lineWidth = 5;
    context.strokeStyle = "red";
    context.stroke();    //绘制(连线)
}

        2、绘制矩形

function drawRect(){
    context.strokeStyle = "red";
    context.lineWidth = 2;
    context.strokeRect(50,50,100,50);    //矩形
    context.fillStyle = "green";
    context.fillRect(50,50,100,50);
}

        3、绘制弧度

function drawArc(){
    //arc参数:圆心x坐标、圆心y坐标、半径、开始的弧度、结束的弧度
    //绘制方向:true(逆时针)、false(顺时针)
    //弧度 = 角度*Math.PI/180
    context.arc(100,100,50,0,45*Math.PI/180,false);
    context.stroke();
}

        4、图形的变换:

context.translate(x,y);    //平移
context.scale(x,y);    //放大
context.rotate(x,y);    //旋转

        5、绘制时钟:

context.beginPath();
context.closePath();
context.restore();    //重复到上一次保存
context.save();
context.clearRect();

        6、绘制图像:

context.drawImage(img,x,y);    //img:图片对象;x、y:坐标
context.drawImage(img,x,y,width,height);
context.drawImage(img,cut_x,cut_y,cut_width,cut_height,draw_x,draw_y,draw_width,draw_height);

五、canvas和svg(矢量)

Canvas和SVG都允许您在浏览器中创建图形,但是它们在根本上是不同的:

        SVG:

                SVG 是一种使用 XML 描述 2D 图形的语言。

                SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。

                在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。

        Canvas:

                Canvas 通过 JavaScript 来绘制 2D 图形。

                Canvas 是逐像素进行渲染的。

                在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。

        Canvas:

                1、依赖分辨率

                2、不支持事件处理器

                3、弱的文本渲染能力

                4、能够以.png或.jpg格式保存结果图像

                5、最适合图像密集型的游戏,其中的许多对象会被频繁重绘

        SVG:

                1、不依赖分辨率

                2、支持事件处理器

                3、最适合带有大型渲染区域的应用程序(比如谷歌地图)

                4、复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)

                5、不适合游戏应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值