美文网首页
一个签名效果

一个签名效果

作者: 苍老师的眼泪 | 来源:发表于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