《智能前端技术与实践》——第 2 章 前端开发基础 ——2.2 HTML基础——2.2.2 常用标签 (下)

简介: 《智能前端技术与实践》——第 2 章 前端开发基础 ——2.2 HTML基础——2.2.2 常用标签 (下)

《智能前端技术与实践》——第 2 章 前端开发基础 ——2.2 HTML基础——2.2.2 常用标签 (上) https://developer.aliyun.com/article/1228307?groupCode=tech_library  


5标签

Canvas API提供了一种通过JavaScriptHTML>元素来绘制图形的方式,它可

以用于动画、游戏画面、数据可视化、图片编辑及实时视频处理等方面的内容。使用>

概可以分为两个步骤。

首先,在HTML文档中定义标签,如代码清单2-12所示。


代码清单 2-12


<canvaswidth="500"height="500"style="border: 1px solid red"id="canvas"></canvas>

标签只有两个属性——width height。当没有设置宽度和高度的时候,

会初始化尺寸为300×150的矩形。

然后,获取nvas>对象的上下文并判断getContext()方法是否存在,如代码清单2-13所示。

代码清单2-13


varcanvas=document.getElementById("canvas")
if (canvas.getContext){
varctx=canvas.getContext("2d");
}

最后,在页面中分别绘制圆形、直线和矩形框,如代码清单 2-14 所示。


代码清单 2-14


<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><title>canvas Demo</title></head><body><canvaswidth="500"height="500"style="border: 1px solid red"id="canvas"></canvas><script>varcanvas=document.getElementById("canvas")
if (canvas.getContext){
varctx=canvas.getContext("2d");
//画圆ctx.beginPath()
ctx.moveTo(250,100)
ctx.arc(250,100,10,0,2*Math.PI)
ctx.fillStyle="blue"ctx.fill()
ctx.closePath()
//画直线ctx.beginPath()
ctx.moveTo(100,250)
ctx.lineTo(400,250)
ctx.strokeStyle="green"ctx.stroke()
ctx.closePath()
//画矩形ctx.beginPath()
ctx.rect(100,300,300,100)
ctx.strokeStyle="aqua"ctx.stroke()
ctx.closePath()
}
</script></body></html>

运行结果如图2-21所示


image.png


接下来,我们介绍上述代码中用到的相关API方法。

beginPath():通过清空子路径列表开始一条新的路径,其调用方法为CanvasRenderingContext2D.beginPath()

closePath():将笔点返回当前子路径的起始点,并从当前点到起始点绘制一条直线,如果图形已经是封闭图形或仅有一个点,此方法不做任何操作。

moveTo(x,y):将一条新的子路径的起点移动到(x,y)

lineTo(x,y):使用直线连接子路径的终点与(x,y)

arc(x,y,radius,startAngle,endAngle,anticlockwise):绘制圆心坐标为(x,y)、半径为radius的弧,根据anticlockwise(默认为顺时针)指定的方向从startAngle开始绘制,到endAngle结束。

stroke():通过线条来绘制图形轮廓。

fill()方法:根据填充路径的内容区域生成实心的图形。

另外,我们可以通过指定strokeStyle的值设置图形轮廓的颜色;通过指定fillStyle的值设置图形的填充颜色,默认值均为黑色(#000000)。

最后,结合代码清单 2-15,介绍指针设备(如鼠标指针)在对象中移动时触发的事件mousemove


代码清单 2-15


<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><title>你画我猜(MNIST 手写数字版)canvas 示例</title></head><body><canvaswidth="500"height="500"style="border: 1px solid red"id="canvas"></canvas><buttonid="clear">清除画布</button><script>varcanvas=document.getElementById("canvas")
varoclear=document.getElementById("clear")
if (canvas.getContext){
varctx=canvas.getContext("2d");
canvas.onmousemove= (e) => {
if(e.buttons==1){
ctx.fillStyle="black"ctx.fillRect(e.offsetX,e.offsetY,5,5)
}
}
oclear.onclick= () => {
ctx.clearRect(0,0,500,500)
}
}
</script></body></html>

运行结果如图 2-22 所示。


image.png

相关文章
|
8天前
|
Web App开发 存储 移动开发
前端基础(十七)_HTML5新特性
本文概述了HTML5的关键新特性,包括canvas图形绘制、多媒体的`video`和`audio`元素、本地存储功能、语义化标签(如`header`、`footer`、`nav`等)及其新增表单控件和属性(如`url`、`email`、`date`类型输入框等)。这些改进增强了网页的功能性和用户体验。
12 1
前端基础(十七)_HTML5新特性
|
22天前
|
前端开发 数据安全/隐私保护
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
本文档详细介绍了HTML表单的多种元素及其用法,包括下拉菜单(`&lt;select&gt;` 和 `&lt;option&gt;`)、文本域(`&lt;textarea&gt;`)、标签解释(`&lt;label&gt;`)、各类按钮(`&lt;button&gt;`)及表单重置功能、无语义布局标签(`&lt;div&gt;` 和 `&lt;span&gt;`)以及字符实体的应用。此外,还提供了一个完整的注册信息表单案例,涵盖个人信息、教育经历和工作经历等部分,展示了如何综合运用上述元素构建实用的表单。
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
|
4天前
|
JSON 缓存 前端开发
个人练习前端技术使用Bootstrap、JQuery、thymeleaf
个人练习前端技术使用Bootstrap、JQuery、thymeleaf
10 2
|
14天前
|
缓存 人工智能 前端开发
前端技术博客:探索现代前端开发的奥秘
前端技术博客:探索现代前端开发的奥秘
32 11
|
8天前
|
前端开发 BI
前端基础(十)_标签分类(行级标签、块级标签、行块标签)
本文阐述了HTML标签的分类,包括行级标签、块级标签和行块标签,并展示了如何使用CSS的display属性实现标签类型之间的转换。
26 3
|
8天前
|
前端开发
前端基础(二)_HTML常用标签(块级标签、行级标签、行块级标签)
本文详细介绍了HTML中的常用标签,包括块级标签(如`h1`至`h6`、`p`、`div`等)、行级标签(如`span`、`b`、`strong`、`i`、`em`、`sub`、`sup`、`del`、`a`等),以及行块级标签(如`img`)。文章解释了这些标签的用途、特点和基本用法,并通过示例代码展示了如何在HTML文档中使用它们。
37 1
|
8天前
|
移动开发 开发者 UED
HTML5中video标签controlslist属性的使用方法
`controlsList`属性为开发者提供了更多控制HTML5视频播放器行为的能力,让视频内容的集成更加灵活和符合需求。通过精心设计的控制列表,可以提升用户体验,同时保持内容的安全性和专业性。这种细节的控制和定制能力是现代Web开发的一个重要方面,反映了HTML5对开发者和内容创作者需求的响应。
18 1
|
9天前
|
存储 JavaScript Java
使用NekoHTML解析HTML并提取META标签内容
关于NekoHTML的代码样例,这里提供一个简单的示例,用于展示如何使用NekoHTML来解析HTML文档并提取其中的信息。请注意,由于NekoHTML的具体实现和API可能会随着版本更新而有所变化,以下代码仅供参考。 ### 示例:使用NekoHTML解析HTML并提取META标签内容 ```java import org.cyberneko.html.parsers.DOMParser; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.xml
|
9天前
|
XML JavaScript Java
NekoHTML 是一个基于Java的HTML扫描器和标签补全器
**NekoHTML** 是一个基于Java的HTML扫描器和标签补全器(tag balancer),由J. Andrew Clark开发。它主要用于解析HTML文档,并能够“修正”许多在编写HTML文档过程中常犯的错误,如增补缺失的父元素、自动用结束标签关闭相应的元素,以及处理不匹配的内嵌元素标签等。这使得程序能够以标准的XML接口来访问HTML文档中的信息。 ### NekoHTML的主要特点包括: 1. **错误修正**:能够自动修正HTML中的常见错误,如未闭合的标签等。 2. **DOM树生成**:将HTML源代码转化为DOM(Document Object Model)结构,便
|
9天前
|
JavaScript 前端开发
react字符串转为dom标签,类似于Vue中的v-html
本文介绍了在React中将字符串转换为DOM标签的方法,类似于Vue中的`v-html`指令,通过使用`dangerouslySetInnerHTML`属性实现。
20 0
react字符串转为dom标签,类似于Vue中的v-html
下一篇
无影云桌面