canvas教程

canvas学习相关的一点东西

字号+ 作者:H5之家 来源:H5之家 2017-10-02 09:14 我要评论( )

canvas学习相关的一点东西,PageX和clientX 的区别pageX指鼠标在页面上的位置,以页面左侧为参考点clientX指可视区域内离左侧的距离,以滚动条滚动到的位置为参考

<!DOCTYPE html> <html> <head> <style> canvas { border: 1px dashed black; } </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script> </head> <body> <canvas></canvas> <div> <div></div> </div> <script> context = document.getElementById(‘canvas‘).getContext("2d"); $(‘#canvas‘).mousedown(function(e){ console.log(e); var mouseX = e.pageX - this.offsetLeft; var mouseY = e.pageY - this.offsetTop; paint = true; addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop); redraw(); }); $(‘#canvas‘).mousemove(function(e){ if(paint){ addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true); redraw(); } }); $(‘#canvas‘).mouseup(function(e){ paint = false; }); $(‘#canvas‘).mouseleave(function(e){ paint = false; }); var clickX = new Array(); var clickY = new Array(); var clickDrag = new Array(); var paint; function addClick(x, y, dragging) { clickX.push(x); clickY.push(y); clickDrag.push(dragging); } function redraw(){ context.clearRect(0, 0, context.canvas.width, context.canvas.height); // Clears the canvas context.strokeStyle = "#df4b26"; context.lineJoin = "round"; context.lineWidth = 5; for(var i=0; i < clickX.length; i++) { context.beginPath(); if(clickDrag[i] && i){ context.moveTo(clickX[i-1], clickY[i-1]); }else{ context.moveTo(clickX[i]-1, clickY[i]); } context.lineTo(clickX[i], clickY[i]); context.closePath(); context.stroke(); } } </script> </body> </html>

 

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

相关文章
  • html5 canvas教程:掌握画直线图形的常用API

    html5 canvas教程:掌握画直线图形的常用API

    2017-10-02 11:01

  • ROS与javascript入门教程

    ROS与javascript入门教程

    2017-10-01 10:02

  • HTML5中的Canvas结合公式绘制粒子运动的教程

    HTML5中的Canvas结合公式绘制粒子运动的教程

    2017-09-29 14:01

  • HTML5 Canvas快速入门学习教程

    HTML5 Canvas快速入门学习教程

    2017-09-29 12:03

网友点评