HTML5中Canvas矩形Rect与ClearRect的应用

云伟小哥_9096

云伟小哥_9096

2026-04-11

646人浏览

原创

rect()定义矩形路径需配合fill()/stroke()才可见,clearrect()直接像素级擦除指定区域;二者常协作实现动画与交互,使用时需注意beginpath()调用、坐标变换影响及高dpi适配。

html5中canvas矩形rect与clearrect的应用

Canvas 的 rect() 和 clearRect() 是绘制与清除矩形区域最基础也最常用的两个方法,它们不直接渲染图形,而是操作路径或像素——一个负责“定义”矩形区域,另一个负责“擦除”指定区域内容。

rect():定义路径矩形,需配合描边或填充才可见

rect(x, y, width, height) 在当前路径中添加一个矩形子路径,它本身不画出任何东西。必须调用 stroke()(描边)或 fill()(填充)才能真正显示出来。

  • 坐标 (x, y) 是矩形左上角在 canvas 坐标系中的位置
  • 宽高为正值时向右、向下延伸;负值会反向,但通常避免使用负尺寸以防逻辑混乱
  • 多次调用 rect() 会累积路径,一次 fill() 可同时填充所有未闭合的矩形

例如:

ctx.rect(10, 10, 80, 40);<br>
ctx.fillStyle = 'blue';<br>
ctx.fill();

这段代码绘制了一个蓝色实心矩形(10,10)起始、宽80高40。

clearRect():精准擦除像素,不依赖路径

clearRect(x, y, width, height) 直接将指定矩形区域内所有像素重置为透明黑色(即完全清空),它不关心路径、不触发重绘逻辑,是真正的“像素级擦除”。

Wechat HTML Publisher
Wechat HTML Publisher

直接上传HTML富文本到微信公众号草稿箱。支持完整的HTML格式,无需Markdown转换。

下载
  • 常用于动画中移除旧元素,比如让一个移动的小方块“消失”在上一帧位置
  • 注意:它清除的是整个 RGBA 像素,包括背景色、半透明叠加、阴影等所有已绘制内容
  • 若 canvas 背景是白色图片或颜色,clearRect 后该区域会变透明,可能露出页面背景——此时需手动重绘背景

rect() 与 clearRect() 的典型协作场景

二者常组合使用实现简单动画或交互反馈:

  • 拖拽框:鼠标按下时记录起点,移动时用 clearRect() 清掉上一帧虚线框,再用 rect() + stroke() 绘制新虚线框
  • 高亮区域:用户划选一块区域,先 clearRect() 擦除旧高亮,再用 rect() + 半透明 fillStyle 绘制新高亮
  • 游戏UI刷新:血条变化时,只用 clearRect() 清除旧血条区域,再重新绘制更新后的矩形进度

容易忽略的关键细节

这两个方法看似简单,但几个细节直接影响效果稳定性:

  • rect() 添加路径后若未调用 beginPath(),后续绘制可能意外连接到前一个路径(产生不需要的线条)
  • clearRect() 的坐标和尺寸是 canvas 像素坐标,不受 scale()、translate() 等变换影响——除非你已在上下文中应用了这些变换,那它清除的就是变换后的区域
  • 在高 DPI 屏幕(如 Retina)上,若未做像素比适配,clearRect() 可能清除不完整,导致残留“脏像素”

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

html html5 canva

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2363

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

5083

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6170

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

5698

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

803

5

html5动画制作有哪些制作方法
html5动画制作有哪些制作方法

html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

2023.10.23

3911

6

canva可画使用技巧汇总
canva可画使用技巧汇总

本专题汇集了PHP中文网精心整理的Canva可画新手使用技巧大全,专为零基础用户打造。无论你是想制作精美海报、PPT还是社交媒体配图,这里都有从注册登录、模板搜索到AI辅助设计、导出分享的全流程保姆级教程。通过深入浅出的图文指南,帮助你快速跨越设计门槛,轻松掌握Canva可画的实用操作,让每个人都能成为设计达人!

2026.05.19

244

21

canva可画新手使用指南
canva可画新手使用指南

本专题专为零基础用户打造,系统讲解Canva可画的核心功能与实用技巧。从注册登录、模板选择到图文编辑、导出分享,手把手带你快速上手。涵盖海报、PPT、简历等高频场景,结合AI工具提升效率,让你5分钟做出专业级设计,轻松应对学习、工作与社交需求。

2026.05.06

800

25

canva可画硬件门槛与适配设备指南
canva可画硬件门槛与适配设备指南

本专题聚焦Canva可画的硬件门槛与适配设备指南,全面解析网页版与App在不同终端上的运行要求。结合PHP中文网提供的专业技术教程,帮助用户精准排查设备卡顿、白屏等问题,快速判断电脑、平板及手机是否满足流畅使用Canva可画的各项硬性指标。

2026.05.19

94

11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 220人学习