canvas使用鼠标画画,涂鸦

canvas在画布上创建空心线条的文字

直接上代码了!!

html代码:

<!DOCTYPE html>
<html>
	<head>
	    <title>鼠标指针实现文字涂鸦</title>
	    <style type="text/css" media="screen">
	        #myCanvas{
	            background-color:lightgrey;
	            border-radius:5px;
	        }
	    </style>
	</head>
	<body>
	    <canvas id="myCanvas" width='400' height='250'>
	
	    </canvas>
	    <button id='clearCanvas'>清空画布</button>
	</body>
</html>

script代码:

<script src="js/jquery-3.2.1.js"></script>
<script>
    $(document).ready(function(){
        let myContext = document.getElementById('myCanvas').getContext('2d');
        let myClickX = new Array();
        let myClickY = new Array();
        let myClickDrag = new Array();
        let myPaint;


        function addClick(x,y,dragging){
            myClickX.push(x);
            myClickY.push(y);
            myClickDrag.push(dragging);
        }

        function redraw(){
            myContext.strokeStyle = 'green';
            myContext.lineJoin = 'round';
            myContext.lineWidth = 5;
            for(let i=0;i<myClickX.length;i++){
                myContext.beginPath();
                if(myClickDrag[i] && i){
                    myContext.moveTo(myClickX[i-1], myClickY[i-1])
                }else{
                    myContext.moveTo(myClickX[i]-1,myClickY[i])
                }
                myContext.lineTo(myClickX[i],myClickY[i]);
                myContext.closePath();
                myContext.stroke();
            }
        }

        $('#myCanvas').mousedown(function(e){
            myPaint = true;
            addClick(e.pageX-this.offsetLeft,e.pageY - this.offsetTop);
            redraw();
        })

        $('#myCanvas').mousemove(function(e){
            if(myPaint){
                addClick(e.pageX-this.offsetLeft,e.pageY - this.offsetTop,true);
            }
            redraw();
        })
        $("#myCanvas").mouseup(function(){
            myPaint = false;
        })

        $('#clearCanvas').click(function(){
            myContext.fillStyle = 'lightgrey'                      //设置背景颜色
            myContext.fillRect(0,0,400,250) //绘制背景矩形
            myClickX=[];
            myClickY=[];
            myClickDrag=[];
        })

    })
</script>

画个五角星以及清空画布效果

效果如下
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值