美文网首页
一个签名效果

一个签名效果

作者: 苍老师的眼泪 | 来源:发表于2022-01-26 18:02 被阅读0次

mousemove - Web API 接口参考 | MDN (mozilla.org)

动画.gif
<!DOCTYPE html>
<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>
        canvas {
            border: 1px solid black;
            width: 560px;
            height: 360px;
        }
    </style>
</head>

<body>
    <canvas id="myPics" width="560" height="360"></canvas>
    <script>
        // When true, moving the mouse draws on the canvas
        let isDrawing = false;
        let x = 0;
        let y = 0;

        const myPics = document.getElementById('myPics');
        const context = myPics.getContext('2d');

        // The x and y offset of the canvas from the edge of the page
        const rect = myPics.getBoundingClientRect();

        // Add the event listeners for mousedown, mousemove, and mouseup
        myPics.addEventListener('mousedown', e => {
            x = e.clientX - rect.left;
            y = e.clientY - rect.top;
            isDrawing = true;
        });

        myPics.addEventListener('mousemove', e => {
            if (isDrawing === true) {
                drawLine(context, x, y, e.clientX - rect.left, e.clientY - rect.top);
                x = e.clientX - rect.left;
                y = e.clientY - rect.top;
            }
        });

        window.addEventListener('mouseup', e => {
            if (isDrawing === true) {
                drawLine(context, x, y, e.clientX - rect.left, e.clientY - rect.top);
                x = 0;
                y = 0;
                isDrawing = false;
            }
        });

        function drawLine(context, x1, y1, x2, y2) {
            context.beginPath();
            context.strokeStyle = 'black';
            context.lineWidth = 1;
            context.moveTo(x1, y1);
            context.lineTo(x2, y2);
            context.stroke();
            context.closePath();
        }
    </script>
</body>

</html>

相关文章

网友评论

      本文标题:一个签名效果

      本文链接:https://www.haomeiwen.com/subject/yqwnhrtx.html