温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

canvas怎么在html5 中使用

发布时间:2021-04-14 15:42:32 来源:亿速云 阅读:573 作者:Leah 栏目:web开发

这期内容当中小编将会给大家带来有关canvas怎么在html5 中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<!DOCTYPE HTML> <html> <head>  <meta charset="UTF-8">  <title>HTML5示例</title>  <style type="text/css">   #container{border:1px solid #ccc;width:800px;height:600px;position:relative;}   canvas{position:absolute;top:0px;left:0px;z-index:1;}  </style> </head> <body>  <select id="tools">   <option value="pen">铅笔</option>   <option value="line">直线</option>   <option value="rect">矩形</option>   <option value="circle">圆形</option>   <option value="ellipse">椭圆</option>  </select>  <div id="container">  <canvas id="canvas" width="800" height="600"></canvas>  <canvas id="canvas_temp"  width="800" height="600"></canvas>  </div>  <script type="text/javascript">   var canvas = document.getElementById('canvas');  var context  = canvas.getContext('2d');    var _canvas = document.getElementById('canvas_temp');  var _context  = _canvas.getContext('2d');  var tools= document.getElementById('tools');    tools.onchange = function (e){     tool[this.value]();  };  var tool = {   pen:function (){    this.reset();    _canvas.onmousedown=function (e){     _context.moveTo(e.layerX,e.layerY);     _canvas.onmousemove=function (e){      _context.lineTo(e.layerX,e.layerY);      _context.stroke();     };     _canvas.onmouseup=function (e){      _canvas.onmousemove=null;      _canvas.onmouseup=null;      tool.updata();     };    };   },   line:function (){    this.reset();    _canvas.onmousedown=function (e){     var _e = e;         _canvas.onmousemove=function (e){       _context.clearRect(0,0,canvas.width,canvas.height);      _context.beginPath();      _context.moveTo(_e.layerX,_e.layerY);      _context.lineTo(e.layerX,e.layerY);      _context.stroke();      _context.closePath();     };      _canvas.onmouseup=function (e){      _canvas.onmousemove=null;      _canvas.onmouseup=null;      tool.updata();     };        }     },   rect:function (){    this.reset();    _canvas.onmousedown=function (e){     var _e = e;     _context.strokeStyle="#000";     _canvas.onmousemove=function (e){       _context.clearRect(0,0,canvas.width,canvas.height);      _context.strokeRect(_e.layerX,_e.layerY,e.layerX-_e.layerX,e.layerY-_e.layerY);     };     _canvas.onmouseup=function (e){      _canvas.onmousemove=null;      _canvas.onmouseup=null;      tool.updata();     };        }    },   circle:function (){    this.reset();    _canvas.onmousedown=function (e){     var _e = e;     _canvas.onmousemove=function (e){       _context.clearRect(0,0,canvas.width,canvas.height);      _context.beginPath();      _context.arc(_e.layerX,_e.layerY,e.layerX-_e.layerX,0,Math.PI*2,true);      _context.stroke();      _context.closePath();     };     _canvas.onmouseup=function (e){      _canvas.onmousemove=null;      _canvas.onmouseup=null;      tool.updata();     };        }    },   ellipse:function (){    this.reset();    _canvas.onmousedown=function (e){     var _e = e;         _canvas.onmousemove=function (e){      var st=0;      _context.clearRect(0,0,canvas.width,canvas.height);      _context.beginPath();      _context.moveTo(_e.layerX+(e.layerX-_e.layerX)*Math.cos(st), _e.layerY+(e.layerX-_e.layerX)*Math.sin(st));      st+=1/180*Math.PI;           for(var i=0;i<360;i++){       _context.lineTo(_e.layerX+(e.layerX-_e.layerX)*Math.cos(st),_e.layerY+(e.layerY-_e.layerY)*Math.sin(st));       st+=1/180*Math.PI;      }      _context.stroke();      _context.closePath();     };     _canvas.onmouseup=function (e){      _canvas.onmousemove=null;      _canvas.onmouseup=null;      tool.updata();     };        }      },   reset:function (){    _canvas.onmousedown=null;    _canvas.onmouseup=null;    _canvas.onmousemove=null;   },   updata:function (){     context.drawImage(_canvas, 0, 0);    _context.clearRect(0, 0, canvas.width, canvas.height);   }  };  tool['pen']();   </script> </body> </html>

上述就是小编为大家分享的canvas怎么在html5 中使用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI