Canvas实现电子签名功能

实现代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Canvas实现手写板</title>

    <style>
        html,body{
            margin: 0;
            padding: 0;
        }
        #signatureCanvas{
            background-color: #999;
        }
    </style>
</head>
<body>
    <canvas id="signatureCanvas"></canvas>

    <script>
        let canvas = document.getElementById("signatureCanvas");
        canvas.width=window.innerWidth;
        canvas.height=window.innerHeight;

        let ctx = canvas.getContext("2d");
        let isDrawing = false;
        let lastX = 0;
        let lastY = 0;

        const startDrawing=(e)=> {
            isDrawing = true;
            lastX = e.pageX;
            lastY = e.pageY;
        }

        const draw=(e)=> {
            if (!isDrawing) return;
            
            let currentX = e.pageX;
            let currentY = e.pageY ;
            
            ctx.beginPath();
            ctx.moveTo(lastX, lastY);
            ctx.lineTo(currentX, currentY);
            ctx.strokeStyle = "#000";
            ctx.lineWidth = 3;
            ctx.stroke();
            
            lastX = currentX;
            lastY = currentY;
        }

        const stopDrawing=()=> {
            isDrawing = false;
        }

        // 监听PC端鼠标移动事件
        canvas.addEventListener("mousedown", startDrawing);
        canvas.addEventListener("mousemove", draw);
        canvas.addEventListener("mouseup", stopDrawing);
        canvas.addEventListener("mouseout", stopDrawing);
        // 监听移动端touch事件
        canvas.addEventListener("touchstart", startDrawing);
        canvas.addEventListener("touchmove", draw);
        canvas.addEventListener("touchend", stopDrawing);
    </script>
</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然可以!以下是一个使用Canvas实现电子签名功能的示例代码。 HTML部分: ```html < id="signature-canvas" width="400 height="200"></canvas> <button onclick="clearCanvas()">清除</button> <button onclick="saveSignature()">保存</button> ``` JavaScript部分: ```javascript var canvas = document.getElementById('signature-canvas'); var ctx = canvas.getContext('2d'); var isDrawing = false; var lastX = 0; var lastY = 0; canvas.addEventListener('mousedown', startDrawing); canvas.addEventListener('mousemove', draw); canvas.addEventListener('mouseup', stopDrawing); canvas.addEventListener('mouseout', stopDrawing); function startDrawing(e) { isDrawing = true; [lastX, lastY] = [e.offsetX, e.offsetY]; } function draw(e) { if (!isDrawing) return; ctx.beginPath(); ctx.moveTo(lastX, lastY); ctx.lineTo(e.offsetX, e.offsetY); ctx.stroke(); [lastX, lastY] = [e.offsetX, e.offsetY]; } function stopDrawing() { isDrawing = false; } function clearCanvas() { ctx.clearRect(0, 0, canvas.width, canvas.height); } function saveSignature() { var dataURL = canvas.toDataURL(); console.log(dataURL); // 这里可以将dataURL发送到后端进行保存 } ``` 这段代码创建了一个带有画布和两个按钮的HTML页面。当用户在画布上按下鼠标并移动时,会在画布上绘制路径。用户可以使用“清除”按钮来清除画布上的签名,使用“保存”按钮可以获取签名的base64编码数据URL,你可以将这个数据URL发送到后端进行保存。 希望这可以帮助到你!如有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值