用mouse,touch制作画板

用mouse,touch制作画板

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>Drawing Board</title>
		<link rel="stylesheet" type="text/css" href="css/DrawingBoard.css"/>
		<script src="js/DrawingBoard.js" type="text/javascript" charset="utf-8"></script>
		<!--使用远程链接导入font awesome图标-->
		<script type="text/javascript" src="//at.alicdn.com/t/font_1394523_6svr7kbd0pp.js"></script>
		<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
		
	</head>
	<body>
		<canvas id="mycanvas" <!--width="500px" height="500px"-->></canvas>
		<div id="toolBars">
			<svg id="pen1"class="icon" aria-hidden="true">
                 <use xlink:href="#icon-Pen"></use>
            </svg>
            <svg id="pen2" class="icon" aria-hidden="true">
                 <use xlink:href="#icon-pen"></use>
            </svg>
            <svg id="pen3" class="icon" aria-hidden="true">
                 <use xlink:href="#icon-pen1"></use>
            </svg>
            <svg id="eraser" class="icon" aria-hidden="true">
    			<use xlink:href="#icon-eraser"></use>
			</svg>
            <svg id="del" class="icon" aria-hidden="true">
                 <use xlink:href="#icon-del"></use>
            </svg>
		    <svg id="red" class="icon" aria-hidden="true">
                 <use xlink:href="#icon-color-red"></use>
            </svg>
		     <svg id="yellow" class="icon" aria-hidden="true">
                 <use xlink:href="#icon-color-yellow"></use>
            </svg>
		     <svg id="blue" class="icon" aria-hidden="true">
                 <use xlink:href="#icon-color-blue"></use>
            </svg>
		    <svg id="black" class="icon" aria-hidden="true">
                 <use xlink:href="#icon-black"></use>
            </svg>
		</div>
	
		
		
	</body>
</html>
*{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
html,body{
	width: 100%;
	height: 100vh;
	/*border: 5px solid green;*/
	position: absolute;
	overflow: hidden;
}
::before{
	box-sizing: border-box;
}
::after{
	box-sizing: border-box;
}
#mycanvas{
	display: block;
	background: darkgray;
	
}
#toolBars{
	width:50px;
	height: 70%;
	/*border: 2px solid red;*/
	border-radius:10px;
	position: fixed;
    top: 15%;
    left: 0px;
    background: white;
}
#toolBars>svg{
	display: block;
	margin:20px auto;
}
#toolBars>.icon {
    width: 2em; 
    height: 2em;
    vertical-align: -0.15em;
    fill: currentColor;
    overflow: hidden;
    /*border: 2px solid black;*/
}

window.onload=function(){/*当文档加载时运行*/
	
    var canvas=document.getElementById("mycanvas");
	var context=canvas.getContext('2d');
	pageSize();/*设置窗口大小*/
	window.onresize=function(){/*调整窗口大小时运行*/
		pageSize();
	}
    
    function pageSize(){/*设置页面大小*/
		/*返回文档的根节点:document.documentElement*/
		/*确定浏览器窗口的尺寸*/
		/*第一种方法*/
		/*var pageWhite=document.documentElement.clientWidth;
		  var pageHeight=document.documentElement.clientHeight;
		 */
		/*第二种方法*/ 
		var pageWhite=document.body.clientWidth;
		var pageHeight=document.body.clientHeight;
		canvas.width=pageWhite;
		canvas.height=pageHeight;
	}
    function drawLine(startX,startY,endX,endY){
    	context.beginPath();
    	/*context.strokeStyle='black'*/
    	context.moveTo(startX,startY);/*开始的点*/
    	/*context.lineWidth=5;*/
    	context.lineTo(endX,endY);/*结束的点*/
    	context.stroke();
    	context.closePath();	
    }
    
    function changeStyle(id){
    	context.strokeStyle=$(id).attr("id");/*获得当前元素的id*/
    	context.fillStyle=$(id).attr("id");
    }
    
    var Paintbrush=false;/*画笔失活*/
    var startPoint={X:undefined,Y:undefined}/*开始的坐标*/
    var endPoint={X:undefined,Y:undefined}/*结束的坐标*/
    if(document.body.ontouchstart!==undefined){
    	canvas.ontouchstart=function(start){/*触摸开始*/
	    	Paintbrush=true;/*激活画笔*/
	    	var x=start.touches[0].clientX;
	    	var y=start.touches[0].clientY;
	        startPoint={X:x,Y:y}
		}
		canvas.ontouchmove=function(move){/*触摸移动*/
	    	if(Paintbrush===true){/*激活画笔*/
				var x=move.touches[0].clientX;
	    		var y=move.touches[0].clientY;
	        	endPoint={X:x,Y:y}
	        	drawLine(startPoint.X,startPoint.Y,endPoint.X,endPoint.Y);
	        	startPoint=endPoint;
            }
		}
		canvas.ontouchend=function(end){/*触摸结束*/
	  		Paintbrush=false;/*画笔失活*/
		}
    }else{
    	canvas.onmousedown=function(down){/*鼠标按下去*/
    		Paintbrush=true;/*激活画笔*/
    		var x=down.clientX;
    		var y=down.clientY;
        	startPoint={X:x,Y:y}
		}
		canvas.onmousemove=function(move){/*鼠标移动*/
	    	if(Paintbrush===true){/*激活画笔*/
				var x=move.clientX;
	    		var y=move.clientY;
	        	endPoint={X:x,Y:y}
	        	drawLine(startPoint.X,startPoint.Y,endPoint.X,endPoint.Y);
	        	startPoint=endPoint;
        	}
		
		}
		canvas.onmouseup=function(up){/*松开鼠标*/
			Paintbrush=false;/*画笔失活*/
    	}
	}
    
    $("#pen1").click(function(){
    	context.lineWidth=2;
    	if(usingEraser===true){
    		changeStyle("#black");
    		usingEraser=!usingEraser;
    	}
    	$(this).css({"border":"2px solid gray"}).siblings().css({"border":"0px solid gray"});
    });
    $("#pen2").click(function(){
    	context.lineWidth=5;
    	if(usingEraser===true){
    		changeStyle("#black");
    		usingEraser=!usingEraser;
    	}
    	$(this).css({"border":"2px solid gray"}).siblings().css({"border":"0px solid gray"});
    });
    $("#pen3").click(function(){
    	context.lineWidth=8;
    	if(usingEraser===true){
    		changeStyle("#black");
    		usingEraser=!usingEraser;
    	}
    	$(this).css({"border":"2px solid gray"}).siblings().css({"border":"0px solid gray"});
    });
    var usingEraser=false;
    $("#eraser").click(function(){
    	  	context.lineWidth=10; 
    		context.strokeStyle=$("#mycanvas").css("background-color");
    		context.fillStyle=$("#mycanvas").css("background-color");
    		$(this).css({"border":"2px solid gray"}).siblings().css({"border":"0px solid gray"});	
    		usingEraser=true;
    });
    $("#del").click(function(){
    	parent.location.reload();/*parent.location.reload()刷新父亲对象(用于框架)*/
    	$(this).css({"border":"2px solid gray"}).siblings().css({"border":"0px solid gray"});
    });
    $("#red").click(function(){
    	 changeStyle(this);
    	 $(this).css({"border":"2px solid gray"}).siblings().css({"border":"0px solid gray"});
    });
    $("#yellow").click(function(){
    	 changeStyle(this);
    	 $(this).css({"border":"2px solid gray"}).siblings().css({"border":"0px solid gray"});
    });
    $("#blue").click(function(){
    	 changeStyle(this);
    	 $(this).css({"border":"2px solid gray"}).siblings().css({"border":"0px solid gray"});
    });
    $("#black").click(function(){
    	 changeStyle(this);
    	 $(this).css({"border":"2px solid gray"}).siblings().css({"border":"0px solid gray"});
    });
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值