本文实例为大家分享了
- <!DOCTYPE html> <html>
- <head> <meta charset="utf-8" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>canvas实现跟随鼠标旋转的箭头</title>
- <style> *{padding: 0;margin: 0}
- </style> </head>
- <body> <canvas width="500" height="500" style="border: 1px solid #555; display: block;margin: 0 auto;"></canvas>
- <script> var arrow=function () {
- this.x=0; this.y=0;
- this.color="#f90" this.rolation=0;
- } var canvas=document.querySelector('canvas')
- var ctx=canvas.getContext('2d'); arrow.prototype.draw=function (ctx) {
- ctx.save(); ctx.translate(this.x,this.y);
- ctx.rotate(this.rolation) ctx.fillStyle=this.color;
- ctx.beginPath(); ctx.moveTo(0, 15);
- ctx.lineTo(-50, 15); ctx.lineTo(-50, -15);
- ctx.lineTo(0,-15); ctx.lineTo(0,-35);
- ctx.lineTo(50,0); ctx.lineTo(0,35);
- ctx.closePath() ctx.fill();
- ctx.restore(); }
- var Arrow=new arrow(); Arrow.x=canvas.width/2;
- Arrow.y=canvas.height/2;
- var c_x,c_y; //相对于canvas坐标的位置; var isMouseDown=false;
- Arrow.draw(ctx) canvas.addEventListener('mousedown',function(e) {
- isMouseDown=true; },false)
- canvas.addEventListener('mousemove',function(e) { if(isMouseDown==true){
- c_x=getPos(e).x-canvas.offsetLeft; c_y=getPos(e).y-canvas.offsetTop;
- //setInterval(drawFram,1000/60) requestAnimationFrame(drawFram)
- } },false)
- canvas.addEventListener('mouseup',function(e) { isMouseDown=false;
- },false) function drawFram(){
- var dx=c_x-Arrow.x; var dy=c_y-Arrow.y;
- Arrow.rolation=Math.atan2(dy,dx); ctx.clearRect(0,0,canvas.width,canvas.height);
- Arrow.draw(ctx) }
- function getPos(e) { var mouse={x:0,y:0}
- var ee=e||event;
- if(e.pageX||e.pageY){ mouse.x=e.pageX;
- mouse.y=e.pageY; }else{
- mouse.x=e.pageX+document.body.scrollLeft+document.document.documentElement.scrollLeft; mouse.y=e.pageY+document.body.scrollTop+document.document.documentElement.scrollTop;
- } return mouse;
- } </script>
- </body> </html>
相关文章
大家在看
-

福昕阅读器如何复制文字
2023-03-02
0万阅读
-

Dubbo 系列JDK SPI 原理解析
2023-02-24
0万阅读
-

欲为王者至尊 888元志美4倍速DVD刻录机评测
2023-02-22
6万阅读
-

拼音标注能手--中华拼读王
2023-02-17
10万阅读
-

360随身WiFi怎么设置隐藏信号 360随身wifi隐藏信号
2023-02-12
9万阅读
-

怎么用酷盘分享文件给好友
2023-02-11
12万阅读
-

企业应如何防范内存抓取恶意软件
2023-02-10
6万阅读
-

如何知道电脑是否含有病毒
2023-02-09
8万阅读
-

美图秀秀让你的国庆旅游照片更出彩
2023-01-16
9万阅读
-

u启动怎么用 U启动使用教程
2023-01-14
4万阅读
-

福昕阅读器如何复制文字
2023-03-02
0万阅读
-

Dubbo 系列JDK SPI 原理解析
2023-02-24
0万阅读
-

欲为王者至尊 888元志美4倍速DVD刻录机评测
2023-02-22
6万阅读
-

拼音标注能手--中华拼读王
2023-02-17
10万阅读
-

360随身WiFi怎么设置隐藏信号 360随身wifi隐藏信号
2023-02-12
9万阅读
-

怎么用酷盘分享文件给好友
2023-02-11
12万阅读
-

企业应如何防范内存抓取恶意软件
2023-02-10
6万阅读
-

如何知道电脑是否含有病毒
2023-02-09
8万阅读
-

美图秀秀让你的国庆旅游照片更出彩
2023-01-16
9万阅读
-

u启动怎么用 U启动使用教程
2023-01-14
4万阅读
