canvas 实现签名。实现的思路是:

  1. 当鼠标指针按下的时候,记录点击的位置,并作为绘制的起点。
  2. 当鼠标移动的时候,进行路径的绘制。
  3. 当鼠标指针抬起的时候,取消鼠标移动的事件,结束路径的绘制。

使用 clearRect 方法清除画布,通过传入参数 ctx.clearRect(0, 0, canvas.width, canvas.height) 可以清除全部的画布区域。

<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>* {margin: 0;}canvas {box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);}.clear {width: 600px;height: 50px;border-radius: 10px;background-color: #E4E7ED;margin-top: 10px;font-size: 24px;text-align: center;line-height: 50px;cursor: pointer;}.clear:hover {background-color: #C0C4CC;}</style></head><body><canvas width="600" height="400" tabindex="0"> </canvas><div class="clear">清除画布</div><script>const canvas = document.querySelector("canvas");const ctx = canvas.getContext("2d");const clear = document.querySelector(".clear")// 监听鼠标进入 canvas, 监听鼠标指针按下和抬起canvas.addEventListener('mouseenter', () => {// 监听鼠标指针按下canvas.addEventListener('mousedown', (e) => {// 开始绘制路径ctx.beginPath()// 设置绘制的起点为当前点击的位置ctx.moveTo(e.offsetX, e.offsetY)// 监听键盘移动事件canvas.addEventListener('mousemove', draw)})canvas.addEventListener('mouseup', () => {// 移除鼠标移动事件canvas.removeEventListener('mousemove', draw)})})function draw(e) {// 绘制线ctx.lineTo(e.offsetX, e.offsetY)// 描边路径ctx.stroke()}clear.addEventListener('click', () => {// 清空画布ctx.clearRect(0, 0, canvas.width, canvas.height)})</script></body>
</html>

实现效果如下:

canvas 实现签名相关推荐

  1. 微信小程序canvas实现签名功能

    微信小程序canvas实现签名功能 在微信小程序项目中,开发模块涉及到手写签名功能,微信小程序canvas闪亮登场 文章目录 微信小程序canvas实现签名功能 前言 一.微信小程序canvas实现签 ...

  2. Html里canvas签名板签名,签字内容还可以手动放大缩小移动

    声明:这篇文章属于一个IT小白的我第一次发,技术内容引自网络.我只是一个搬运工和砖瓦工. 如果内容涉及侵权,请告知我可以删除文章.并且本代码属于技术交流无意涉嫌商业行为. [内容] 实现在线的PDF文 ...

  3. 移动端 canvas 横屏 签名 图片旋转

    学习与 前端实现电子签名 是通过原生canvas实现,我这篇是对其进行了改造,记录一下 效果图 组件 components/esign.vue <template><div styl ...

  4. canvas横屏签名,签名图片旋转90度生成base64

    效果展示 旋转原理 1.新建画布,画布长宽为图片较长边长的2倍 2.根据需要的旋转角度,确定旋转完之后需要复制图片的象限范围 3.对新建画布进行先移动(中心点位)后旋转处理 4.复制需要象限的图片 5 ...

  5. canvas 裁剪签名图片 去除多余的空白

    var canvas = document.createElement("canvas"); canvas.width = sWidth; canvas.height = sHei ...

  6. html5 签名,canvas在线签名插件Tablet

    插件描述:Tablet是一个基于canvas的在线签名板! 更新时间:2021-04-28 22:33:31 更新说明: 1.支持回退操作 2.浏览器窗口大小改变自动重绘 3.删除了之前一些不合理的代 ...

  7. vue canvas手绘签名

    需求 公司业务想要在手机端h5搞个签名需求.签名好像在哪里见到过:好像钉钉上请假时有个签名可以仿照写一个 思路想法 既然是绘制 那想到的是用 canvas 或者svg 应该都可以 既然canvas 或 ...

  8. vue中canvas签名

    vue用canvas横屏签名 最近遇到一个签名需求由于canvas一些特性,横屏签名不好控制,也是多方借鉴才解决,写真就是为了记录下,方便有需要的同学. js代码如下: import Draw fro ...

  9. 微信小程序使用 canvas 实现手写签名

    在使用微信小程序开发中,有的需求场景中会需要用户手写签名.或者绘制一些路径,通常会使用 canvas 来实现这种需求 在小程序的开发官方文档中我们可以查找到相关的 canvas 接口使用方法,在文档中 ...

最新文章

  1. java 接口工程_Java工程师(15)抽象类与接口
  2. 基于MATLAB的Okumura-Hata模型的仿真
  3. VTK:图表之SelectedVerticesAndEdgesObserver
  4. go-zero:微服务框架
  5. php多功能引流工具箱源码
  6. Ubuntu 16.04退出anaconda环境
  7. 实现一个Ajax模式的文件上传功能有多难?
  8. vasp软件全名是什么_Materials Studio软件常见问题与解答
  9. manjaro 搜狗输入法_Manjaro日常使用 之一:日常办公
  10. 课节5:图神经网络算法(二):图采样
  11. k8s相关面试问题_最常被问到的20道Kubernetes面试题
  12. [Lydsy1805月赛]对称数 BZOJ5361
  13. 谷歌怎么找ajax请求,谷歌浏览器 - GET ajax请求失败
  14. 故障集——user is currently used(无法删除用户)
  15. 应届生比老员工更吃香?为什么大厂都在抢应届生
  16. 一文读懂LiveData 粘性事件
  17. Elasticsearch: 运用 Pinned query 来提高文档的排名 (7.5发行版新功能)
  18. 【科研】浅学Cross-attention?
  19. js 事件绑定传入自定义参数
  20. 以自动开发票为例,解析RPA(机器人流程自动化)在财务场景的使用

热门文章

  1. python画图笔记(横向条形图)
  2. 企业级数据仓库建设最新版(附16页文档)
  3. 与滑动验证码的斗智斗勇,看如何用Python破解
  4. 社交电商会是下一个风口吗?
  5. base64图片解析
  6. 使用微波雷达传感器都有那些优势呢?
  7. Tikz作图教程:堆叠柱形图+折线图+误差线
  8. 如何把粤康码行程卡拼图?小白拼图话你知
  9. 如何有效管理工时 - 2
  10. 回家过年咯,祝大家猪年快乐