《智能前端技术与实践》——第 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

相关文章
|
2月前
|
前端开发 JavaScript 测试技术
前端测试技术中,如何提高集成测试的效率?
前端测试技术中,如何提高集成测试的效率?
|
2月前
|
移动开发 搜索推荐 UED
HTML5的新语义化标签
HTML5引入的这些新语义化标签,通过明确标识内容的结构和意义,使得网页结构更加清晰,易于理解和维护。使用这些标签不仅提升了网页的可读性和可访问性,还增强了搜索引擎和辅助技术对网页内容的解析能力。在实际开发中,合理使用这些语义化标签,能够显著提升网页的质量和用户体验。
99 49
|
2月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
50 6
|
2月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
52 5
|
2月前
|
前端开发 JavaScript 搜索推荐
前端懒加载:提升页面性能的关键技术
前端懒加载是一种优化网页加载速度的技术,通过延迟加载非首屏内容,减少初始加载时间,提高用户访问体验和页面性能。
|
2月前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
62 5
|
2月前
|
移动开发 前端开发 JavaScript
惊!这些前端技术竟然能让你的网站在移动端大放异彩!
随着互联网技术的发展,移动设备成为主要的上网工具。本文介绍了几种关键的前端技术,包括响应式设计、图片优化、字体选择、HTML5和CSS3的应用、性能优化及手势操作设计,帮助开发者提升网站在移动端的显示效果和用户体验。示例代码展示了如何实现简单的双向绑定功能。
44 3
|
2月前
|
数据采集 前端开发 安全
前端测试技术
前端测试是确保前端应用程序质量和性能的重要环节,涵盖了多种技术和方法
|
2月前
|
机器学习/深度学习 移动开发 自然语言处理
HTML5与神经网络技术的结合有哪些其他应用
HTML5与神经网络技术的结合有哪些其他应用
40 3
|
3月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
227 14
下一篇
开通oss服务