canvas 实现签名
用 canvas 实现签名。实现的思路是:
- 当鼠标指针按下的时候,记录点击的位置,并作为绘制的起点。
- 当鼠标移动的时候,进行路径的绘制。
- 当鼠标指针抬起的时候,取消鼠标移动的事件,结束路径的绘制。
使用 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 实现签名相关推荐
- 微信小程序canvas实现签名功能
微信小程序canvas实现签名功能 在微信小程序项目中,开发模块涉及到手写签名功能,微信小程序canvas闪亮登场 文章目录 微信小程序canvas实现签名功能 前言 一.微信小程序canvas实现签 ...
- Html里canvas签名板签名,签字内容还可以手动放大缩小移动
声明:这篇文章属于一个IT小白的我第一次发,技术内容引自网络.我只是一个搬运工和砖瓦工. 如果内容涉及侵权,请告知我可以删除文章.并且本代码属于技术交流无意涉嫌商业行为. [内容] 实现在线的PDF文 ...
- 移动端 canvas 横屏 签名 图片旋转
学习与 前端实现电子签名 是通过原生canvas实现,我这篇是对其进行了改造,记录一下 效果图 组件 components/esign.vue <template><div styl ...
- canvas横屏签名,签名图片旋转90度生成base64
效果展示 旋转原理 1.新建画布,画布长宽为图片较长边长的2倍 2.根据需要的旋转角度,确定旋转完之后需要复制图片的象限范围 3.对新建画布进行先移动(中心点位)后旋转处理 4.复制需要象限的图片 5 ...
- canvas 裁剪签名图片 去除多余的空白
var canvas = document.createElement("canvas"); canvas.width = sWidth; canvas.height = sHei ...
- html5 签名,canvas在线签名插件Tablet
插件描述:Tablet是一个基于canvas的在线签名板! 更新时间:2021-04-28 22:33:31 更新说明: 1.支持回退操作 2.浏览器窗口大小改变自动重绘 3.删除了之前一些不合理的代 ...
- vue canvas手绘签名
需求 公司业务想要在手机端h5搞个签名需求.签名好像在哪里见到过:好像钉钉上请假时有个签名可以仿照写一个 思路想法 既然是绘制 那想到的是用 canvas 或者svg 应该都可以 既然canvas 或 ...
- vue中canvas签名
vue用canvas横屏签名 最近遇到一个签名需求由于canvas一些特性,横屏签名不好控制,也是多方借鉴才解决,写真就是为了记录下,方便有需要的同学. js代码如下: import Draw fro ...
- 微信小程序使用 canvas 实现手写签名
在使用微信小程序开发中,有的需求场景中会需要用户手写签名.或者绘制一些路径,通常会使用 canvas 来实现这种需求 在小程序的开发官方文档中我们可以查找到相关的 canvas 接口使用方法,在文档中 ...
最新文章
- java 接口工程_Java工程师(15)抽象类与接口
- 基于MATLAB的Okumura-Hata模型的仿真
- VTK:图表之SelectedVerticesAndEdgesObserver
- go-zero:微服务框架
- php多功能引流工具箱源码
- Ubuntu 16.04退出anaconda环境
- 实现一个Ajax模式的文件上传功能有多难?
- vasp软件全名是什么_Materials Studio软件常见问题与解答
- manjaro 搜狗输入法_Manjaro日常使用 之一:日常办公
- 课节5:图神经网络算法(二):图采样
- k8s相关面试问题_最常被问到的20道Kubernetes面试题
- [Lydsy1805月赛]对称数 BZOJ5361
- 谷歌怎么找ajax请求,谷歌浏览器 - GET ajax请求失败
- 故障集——user is currently used(无法删除用户)
- 应届生比老员工更吃香?为什么大厂都在抢应届生
- 一文读懂LiveData 粘性事件
- Elasticsearch: 运用 Pinned query 来提高文档的排名 (7.5发行版新功能)
- 【科研】浅学Cross-attention?
- js 事件绑定传入自定义参数
- 以自动开发票为例,解析RPA(机器人流程自动化)在财务场景的使用