canvas 手写签名 vue3
<canvas ref='canvas' height="360" width="600"></canvas> <div class="signature"> <button class="re-sign" ref="clearBtn">重新签名</button> </div>
<script setup> import { onMounted, ref } from 'vue' const canvas = ref(null); let ctx = ref(); const initContext = () => { ctx = canvas.value.getContext('2d'); } let isDrawing = false; let lastX = 0; let lastY = 0; // 重新写 let clearBtn = ref(null); onMounted(() => { initContext(); canvas.value.addEventListener('mousedown', function (e) { isDrawing = true; [lastX, lastY] = [e.offsetX, e.offsetY]; }); canvas.value.addEventListener('mousemove', function (e) { if (isDrawing) { ctx.beginPath(); ctx.moveTo(lastX, lastY); ctx.lineTo(e.offsetX, e.offsetY); ctx.stroke(); [lastX, lastY] = [e.offsetX, e.offsetY]; } }); canvas.value.addEventListener('mouseup', function () { isDrawing = false; }); clearBtn.value.addEventListener('click', function () { ctx.clearRect(0, 0, canvas.value.width, canvas.value.height); }); </script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY