canvas元素用于在网页上绘制图形。

什么是canvas?

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

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

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

浏览器支持

表格中的数字表示支持元素的第一个浏览器版本号。

创建一个画布(Canvas)

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

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

简单实例如下:

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

注意: 标签通常需要指定一个id属性 (脚本中经常引用), width 和 height 属性定义的画布的大小.

提示:你可以在HTML页面中使用多个 元素.

使用 style 属性来添加边框:

canvas id="myCanvas" width="200" height="100"
style="border:1px solid #000000;">
</canvas></pre>

效果展示:

使用JavaScript来绘制图像

canvas元素本身是没有绘图能力的。所有的绘制工作必须在JavaScript内部完成:

HTML代码:

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
您的浏览器不支持 HTML5 canvas 标签。
</canvas></pre>

javascript代码:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="#FF0000";
ctx.fillRect(0,0,150,75);</pre>

效果展示:

实例解析:

首先,找到 元素:

var c=document.getElementById("myCanvas");

然后,创建 context 对象:

var ctx=c.getContext("2d");

getContext(“2d”) 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

下面的两行代码绘制一个红色的矩形:

ctx.fillStyle="#FF0000";
ctx.fillRect(0,0,150,75);</pre>

设置fillStyle属性可以是CSS颜色,渐变,或图案。fillStyle 默认设置是#000000(黑色)。

fillRect(x,y,width,height) 方法定义了矩形当前的填充方式。

Canvas 坐标

canvas 是一个二维网格。

canvas 的左上角坐标为 (0,0)

上面的 fillRect 方法拥有参数 (0,0,150,75)。

意思是:在画布上绘制 150×75 的矩形,从左上角开始 (0,0)。

坐标实例

如下图所示,画布的 X 和 Y 坐标用于在画布上对绘画进行定位。鼠标移动的矩形框上,显示定位坐标。

Canvas 路径

在Canvas上画线,我们将使用以下两种方法:

  • moveTo(x,y)定义线条开始坐标
  • lineTo(x,y)定义线条结束坐标

绘制线条我们必须使用到”ink”的方法,就像stroke().

举例:

定义开始坐标(0,0), 和结束坐标 (200,100)。然后使用 stroke() 方法来绘制线条:

HTML代码:

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">您的浏览器不支持 HTML5 canvas 标签。</canvas></pre>

javascript代码:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.moveTo(0,0);
ctx.lineTo(200,100);
ctx.stroke();</pre>

效果展示:

在canvas中绘制圆形, 我们将使用以下javascript方法:

context.arc(<i>x</i>,<i>y</i>,<i>r</i>,<i>sAngle</i>,<i>eAngle</i>,<i>counterclockwise</i>);

参数值

定义和用法

arc()方法创建弧/曲线(用于创建圆或部分圆)。

提示:如需通过arc()来创建圆,请把起始角设置为0,结束角设置为2*Math.PI。

提示:请使用stroke()或fill()方法在画布上绘制实际的弧。

  • 中心:arc(100,75,50,0Math.PI,1.5Math.PI)
  • 起始角:arc(100,75,50,0,1.5*Math.PI)
  • 结束角:arc(100,75,50,0Math.PI,1.5Math.PI)

实际上我们在绘制圆形时使用了 “ink” 的方法, 比如 stroke() 或者 fill().

实例

使用arc()方法绘制一个圆:

HTML代码:

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">
您的浏览器不支持 HTML5 canvas 标签。</canvas></pre>

javascript代码:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();
ctx.arc(95,50,40,0,2*Math.PI);
ctx.stroke();</pre>

效果展示:

Canvas-文本

使用canvas绘制文本,重要的属性和方法如下:

font-定义字体

fillText(text,x,y,maxWidth)-在canvas上绘制实心的文本

strokeText(text,x,y,maxWidth)-在canvas上绘制空心的文本

参数值

使用fillText():

实例

使用”Arial”字体在画布上绘制一个高30px的文字(实心):

HTML代码:

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">
您的浏览器不支持 HTML5 canvas 标签。</canvas></pre>

javascript代码:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.font="30px Arial";
ctx.fillText("Hello World",10,50);</pre>

效果展示:

使用strokeText():

实例

使用”Arial”字体在画布上绘制一个高30px的文字(空心):

HTML代码:

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;">
您的浏览器不支持 HTML5 canvas 标签。</canvas></pre>

javascript代码:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.font="30px Arial";
ctx.strokeText("Hello World",10,50);</pre>

效果展示:

Canvas-渐变

渐变可以填充在矩形,圆形,线条,文本等等,各种形状可以自己定义不同的颜色。

以下有两种不同的方式来设置Canvas渐变:

createLinearGradient()方法创建线性的渐变对象。

提示:请使用 addColorStop() 方法规定不同的颜色,以及在 gradient 对象中的何处定位颜色。

addColorStop()方法规定渐变对象中的颜色和位置。addColorStop()方法与createLinearGradient()或createRadialGradient()一起使用。注意:您可以多次调用addColorStop()方法来改变渐变。如果您不对渐变对象使用该方法,那么渐变将不可见。为了获得可见的渐变,您需要创建至少一个色标。JavaScript语法:gradient.addColorStop(stop,color);stop 介于0.0与1.0之间的值,表示渐变中开始与结束之间的位置。color 在stop位置显示的CSS颜色值。</pre>

javascript语法

createLinearGradient(x,y,x1,y1)</pre>

参数值

createLinearGradient() 方法创建放射状/圆形渐变对象。

JavaScript 语法:

createRadialGradient(x0,y0,r0,x1,y1,r1);</pre>

参数值

实例

使用createLinearGradient()创建一个线性渐变。使用渐变填充矩形:

javascript代码:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");// Create gradient
var grd=ctx.createLinearGradient(0,0,200,0);
grd.addColorStop(0,"red");
grd.addColorStop(1,"white");// Fill with gradient
ctx.fillStyle=grd;
ctx.fillRect(10,10,150,80);</pre>

效果展示:

实例

使用createRadialGradient()创建一个径向/圆渐变。使用渐变填充矩形:

javascript代码:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");// Create gradient
var grd=ctx.createRadialGradient(75,50,5,90,60,100);
grd.addColorStop(0,"red");
grd.addColorStop(1,"white");// Fill with gradient
ctx.fillStyle=grd;
ctx.fillRect(10,10,150,80);</pre>

效果展示:

Canvas 图像

把一幅图像放置到画布上, 使用以下方法:

drawImage(image,x,y)</pre>

HTML代码:

<p>Image to use:</p>
<img id="scream" src="img_the_scream.jpg" alt="The Scream" width="220" height="277">
<p>Canvas:</p>
<canvas id="myCanvas" width="250" height="300" style="border:1px solid #d3d3d3;">
您的浏览器不支持 HTML5 canvas 标签。
</canvas></pre>

javascript代码:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");img.onload = function() {ctx.drawImage(img,10,10);
}</pre>

效果展示:

最后

你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。

我特地针对初学者整理一套前端学习资料,免费分享给大家,戳这里即可免费领取

[外链图片转存中…(img-EScNbCTX-1626951001691)]

[外链图片转存中…(img-OO4dG7k0-1626951001691)]

最后

你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。

我特地针对初学者整理一套前端学习资料,免费分享给大家,戳这里即可免费领取

[外链图片转存中…(img-ptJvCsl5-1626951001692)]

web网页开发工具,HTML标签之表单标签相关推荐

  1. 视频教程-Web前端开发利器 SPRY框架之表单验证-JavaScript

    Web前端开发利器 SPRY框架之表单验证 有17年互联网行业从业经验,始终在教学第一线,勇于创新,从有效教学,不断向高效教学转变.始终坚持"学生为主体,教师为主导:商业化案例,企业化情境& ...

  2. Web学习第二天——HTML的基本标签(媒体标签、链接标签、列表标签、表格标签、表单标签)

    第二天 HTML的常用标签(媒体标签.链接标签.列表标签.表格标签.表单标签) 一.媒体标签 (一).图片标签(img) 标签格式及属性介绍 (二).音频标签(embed.audio) embed标签 ...

  3. HTML标签-排版标签、媒体标签、列表标签、表格标签、表单标签、语义化标签、字符实体

    一.排版标签 1.标题标签 在新闻和文章的页面中都离不开标题,用来突出显示文章主题. h系列标题 <body><h1>1级标题</h1> <h2>2级标 ...

  4. HTML 表格标签、列表标签、表单标签(案例: 注册页面)

    1. 表格标签 表格是实际开发中非常常用的标签: 1. 表格的主要作用 2. 表格的基本语法 1.1 表格的主要作用 表格主要用于显示.展示数据,因为它可以让数据显示的非常的规整,可读性非常好.特别是 ...

  5. HTML的表格标签,列表标签,表单标签,HTML5有哪些新特性

    HTML的表格标签,列表标签,表单标签,HTML5有哪些新特性 欢迎大家去博客冰山一树Sankey,浏览效果更好.直接右上角搜索该标题即可 博客园主页:博客园主页-冰山一树Sankey CSDN主页: ...

  6. java day32【HTML标签:表单标签 、CSS】

    第一章  HTML标签:表单标签 * 表单: * 概念:用于采集用户输入的数据的.用于和服务器进行交互. * form:用于定义表单的.可以定义一个范围,范围代表采集用户数据的范围 * 属性: * a ...

  7. [JavaWeb-HTML]HTML标签_表单标签

    HTML标签:表单标签 * 表单:* 概念:用于采集用户输入的数据的.用于和服务器进行交互.* form:用于定义表单的.可以定义一个范围,范围代表采集用户数据的范围* 属性:* action:指定提 ...

  8. Struts2中UI标签之表单标签介绍

    1.在Struts2中UI标签的表单标签分为两种:form标签本身和单个表单标签. 2.Struts2表单标签包括:form.textfield.password.radio.checkbox.che ...

  9. 4、HTML——表格标签、表单标签

    目录 一.表格标签:table-tr-td/th 1.合并单元格 1.1 合并同行不同列的单元格(列合并) 1.2  合并同列不同行的单元格(行合并) 二.表单标签:form 1.form标签 2.i ...

  10. HTML 列表标签、表格标签、表单标签

    HTML 列表标签.表格标签.表单标签 一.列表标签 二.表格标签 三.表单标签 四.综合练习 一.列表标签 <!DOCTYPE html> <html lang="en& ...

最新文章

  1. Thinking in java 多线程导致数组越界崩溃的BUG
  2. RID枚举工具RidEnum
  3. linux 内核配置 dns,Linux的dns配置 - Linux操作系统基础进阶练习题_Linux教程_Linux公社-Linux系统门户网站...
  4. stm32f407 spi3 mosi没有输出_入门篇 | STM32F407寄存器开发点灯
  5. 问世 20 多年的 PHP 还是最好的编程语言吗?
  6. Linux入门之安装Centos并实现Xshell远程SSH连接
  7. 一张专家推荐的最健康的作息时间表
  8. 为postgreSQL添加man帮助
  9. 四面楚歌,商汤科技该如何在AI领域破局
  10. 为什么阿里那么难进,原来精髓在这
  11. Windows下,Sublime text 在GoSublime中支持goimports
  12. 圣诞节计算机老师贺卡祝福语,给老师的圣诞节贺卡祝福语
  13. 硬核解析Promise对象(这七个必会的常用API和七个关键问题你都了解吗?)
  14. IT小白如何从职场新人到行业翘楚,看一个IT高管的发展路线
  15. LayaBox怎么添加定时器
  16. FFMPEG API函数根据SDP文件接收RTP媒体流
  17. 全国高校cct联合计算机考试,全国高校CCT联合考试系统剖析
  18. 趁着课余时间学点Python(十五)有趣的小模块
  19. 【线性代数】拉普拉斯定理
  20. 全面刨析VDS链销模式12大优势及下一个机会

热门文章

  1. 为什么高频信号的指向性更好? Quora上一个很直观的回答
  2. Web 攻击的日志分析:初学者指南
  3. 超详细的MySQL入门教程(四)
  4. 0024-【肠道生态】-《消失的微生物》
  5. 5 断点无效_6名驴友山顶被雷击,5人烧伤,1人抢救无效死亡!这些避雷经验需谨记!...
  6. 小米3观感:说说时下手机圈里的那些人和事
  7. vs+qt实现简单桌面精灵
  8. java web 限下载速,WebClient DownloadDataAsync当前下载速度
  9. 【HTB靶场记录】TIER-0
  10. 云中需要多余的服务器资源