canvas 畫筆功能

效果圖

微信截圖_20220822112416.png
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            #canvas {
                border: 1px solid red;
            }
        </style>
    </head>
    <body>
        <canvas id="canvas" width="800" height="800"></canvas>
    </body>
</html>
<script>
    // 線條寬度
    let strokeWidth = 5;
    // 線條顏色
    let strokeColor = 'red';
    
    let canvas = document.getElementById('canvas');
    let ctx = canvas.getContext('2d');
    // 線條末端添加圓形線帽,減少線條的生硬感
    ctx.lineCap = 'round';
    // 當兩條線條交匯時,創建圓形邊角
    ctx.lineJoin = 'round';
    ctx.lineWidth = strokeWidth;
    ctx.strokeStyle = strokeColor;
    // 利用陰影,消除鋸齒
    ctx.shadowBlur = 1;
    ctx.shadowColor = strokeColor;
    
    let drawStatus = false;
    
    canvas.addEventListener('mousedown', function(e){
        drawStatus = true;
        ctx.moveTo(e.offsetX, e.offsetY);
        startX = e.offsetX;
        startY = e.offsetY;
    });
    
    canvas.addEventListener('mousemove', function(e) {
        if (!drawStatus) {
            return;
        }
        ctx.lineTo(e.offsetX, e.offsetY);
        ctx.stroke();
    })
    
    canvas.addEventListener('mouseup', function(e) {
        drawStatus = false;
        console.log('out');
    })
</script>
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容