用JS的canvas实现数字签名

用JS的canvas实现数字签名

在这里插入图片描述

思路:

  1. 先创建画布
  2. 鼠标按下,同时随着鼠标的移动来绘制签名,最后鼠标松开绘制结束。

直接上代码啦:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        canvas {
            border: 1px solid red;
        }
    </style>
</head>
<!-- 鼠标按下,移动开始绘制,鼠标松开结束绘制 -->

<body>
    <canvas width="500px" height="300px" id="mycanvas"></canvas>
    <!-- 来一个取色器 -->
    <input type="color">
    <script>
        let mycanvas = document.querySelector("#mycanvas");
        let ctx = mycanvas.getContext('2d');
        let flag = false; //判断鼠标是否被按下
        let color = "black";
        mycanvas.onmousedown = function() {
            flag = true;
            ctx.beginPath(); //重新定义轨迹,避免连上一段线段的末尾
            //获取用户取色器的值
            color = document.querySelector('input[type=color]').value;
            // 设置签名的颜色
            ctx.strokeStyle = color;
        }
        mycanvas.onmousemove = function() {
            if (flag) {
                ctx.lineTo(event.offsetX, event.offsetY); //
                ctx.stroke();
            }

        };

        mycanvas.onmouseup = function() {
            flag = false;
        }
    </script>
</body>

</html>

注意一个问题,绘制时要随时跟新绘制起点,不然会出现意想不到的结果哦。 (我写的代码里面,直接用 ctx.lineTo(event.offsetX, event.offsetY))来随着鼠标的移动,自己再实现绘制起点的更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值