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. SAP 预制发票报错 -Material 20000000 D119223073 in valuation area VNSM has inconsistant ML data- 之对策
  2. python pandas读取excel-Python使用Pandas读写EXCEL文件教程
  3. C#设置System.Net.ServicePointManager.DefaultConnectionLimit,突破Http协议的并发连接数限制...
  4. 5分钟实现动态切换,原来迁徙图还可以这么玩!
  5. dubbo源码解析-zookeeper创建节点
  6. 基于jQuery日历插件制作日历
  7. Ubuntu安装anaconda,tensorflow,keras,pytorch
  8. CSI.SAP2000.v19.1.1 Win32_64 2CD通用有限元软件
  9. 图书信息管理系统设计
  10. 产品经理职责和工作内容
  11. 饥荒控制台输入没用_饥荒控制台使用教程
  12. html入门、结构、标签、列表、表格
  13. int... num什么意思?
  14. python网络安全协议_如果你不遵守Python中TCP和UDP等网络编程协议!那么你会自食其果...
  15. MySQL数据库、表常用命令
  16. 苹果申请屏幕防指纹专利 互联网信用体系跨越一大步
  17. PTA实验3-1 求一元二次方程的根 (20 分)
  18. (8)点云数据处理学习——ICP registration(迭代最近点)
  19. 2022团体程序设计天梯赛
  20. MongoDB多层嵌套查询

热门文章

  1. 众智科技在创业板启动申购:预计IPO市值31亿元,杨新征为董事长
  2. Apache Sedona(GeoSpark) spatial join 源码解析
  3. 12.4 备份和恢复
  4. 四旋翼无人机物理基础
  5. Linux Cheatsheet
  6. qlaber 中放置图片_「装配式施工技术」第34期 独立支撑架在使用过程中忽视的那些事...
  7. 【学习汇编语言】王爽的汇编语言书中更改字母大小写的一道题
  8. python面对对象是什么意思_Python—面对对象(上)
  9. 抽奖小程序制作开发 助手力参与抽奖 小程序设计微信大屏幕公众号抽奖关注助手租用 助力 定时开奖小程序365抽奖助手小程序吸粉裂变引流神器商家拓客曝光小程序
  10. 渐变马赛克——水晶格图标