canvas教程

WEB前端开发学习----10. canvas实现画板的两个方法

字号+ 作者:H5之家 来源:H5之家 2015-11-11 08:29 我要评论( )

方法1:查看演示点击鼠标作画此方法就是鼠标移动的时候不停的画小圆点,然后用等粗的线将小圆点串起来(有点类于珍珠项链)。因为是小圆

WEB前端开发学习----10. canvas实现画板的两个方法

WEB前端开发学习----10. canvas实现画板的两个方法,有需要的朋友可以参考下。


方法1:查看演示点击鼠标作画

此方法就是鼠标移动的时候不停的画小圆点,然后用等粗的线将小圆点串起来(有点类似于珍珠项链)。因为是小圆点,所以效果要比方法2好,比较平滑。


方法2:查看演示点击鼠标作画

这个方法很容易理解,就是不断的将鼠标所在的位置用线段连起来。缺点是不够平滑,尤其是粗线条的时候。

方法1:

<!doctype html> <html> <head> <meta charset="utf-8"/> </head> <body style="margin:0"> <canvas id="canvas">请更新浏览器版本</canvas> <script> var canvas=document.getElementById("canvas"); var cxt=canvas.getContext("2d"); var radius=10; var falge=false; //画板大小为屏幕大小 canvas.width=window.innerWidth; canvas.height=window.innerHeight; cxt.lineWidth=20; //添加监听对象 canvas.addEventListener("mousedown", start); canvas.addEventListener("mouseup", stop); canvas.addEventListener("mousemove", putPoint); function putPoint(e){ if(falge){ cxt.lineTo(e.clientX, e.clientY); cxt.stroke(); cxt.beginPath(); cxt.arc(e.clientX, e.clientY, radius, 0, 360, false); cxt.fill(); cxt.beginPath(); cxt.moveTo(e.clientX, e.clientY); } } function start(e){ falge=true; putPoint(e); } function stop(){ falge=false; cxt.beginPath(); } </script> </body> </html>

方法2:

<!doctype html> <html> <head> <meta charset="utf-8"> </head> <body> <canvas width="900" height="500" id="canvas" style="border:1px solid black">请更新浏览器版本</canvas> <script > var canvas=document.getElementById("canvas"); var cxt=canvas.getContext("2d"); var flag=false cxt.lineWidth=20; canvas.onmousedown=function(evt){ //alert(evt.pageX); //alert(this.offsetLeft); var startX=evt.clientX-this.offsetLeft; var startY=evt.clientY-this.offsetTop; cxt.beginPath(); cxt.moveTo(startX, startY); flag=true; } canvas.onmousemove=function(evt){ if(flag){ var endX=evt.clientX-this.offsetLeft; var endY=evt.clientY-this.offsetTop; cxt.lineTo(endX, endY); cxt.stroke(); } } canvas.onmouseup=function(){ flag=false; } canvas.onmouseout=function(){ flag=false; } </script> </body> </html>

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评