首页 > 其他 > 详细

21-canvas事件监听

时间:2020-01-08 15:16:07      阅读:56      评论:0      收藏:0      [点我收藏+]
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>21-Canvas事件监听</title>
 6     <style>
 7         *{
 8             margin: 0;
 9             padding: 0;
10         }
11         canvas{
12             display: block;
13             margin: 0 auto;
14             background: red;
15         }
16     </style>
17 </head>
18 <body>
19 <canvas width="500" height="400"></canvas>
20 <script>
21     /*
22     因为整个canvas是一个标签, 所以只能通过监听鼠标在canvas上的位置来判断是否需要处理对应的图形
23     * */
24     // 1.拿到canvas
25     let oCanvas = document.querySelector("canvas");
26     // 2.从canvas中拿到绘图工具
27     let oCtx = oCanvas.getContext("2d");
28     // 3.绘制矩形
29     let rectX = 100;
30     let rectY = 100;
31     let rectWidth = 100;
32     let rectHeight = 100;
33     oCtx.rect(rectX, rectY, rectWidth, rectHeight);
34     oCtx.fill();
35 
36     oCtx.beginPath();
37     oCtx.rect(200, 200, 100, 100);
38     oCtx.fill();
39     // 4.添加点击事件
40     oCanvas.onclick = function (event) {
41         let x = event.offsetX;
42         let y = event.offsetY;
43         /*
44         if(x >= rectX && x <= rectX + rectWidth &&
45             y >= rectY && y <= rectY + rectHeight){
46             console.log("矩形被点击了");
47         }else{
48             console.log("矩形没有被点击");
49         }
50         */
51         /*
52         注意点:
53         isPointInPath方法如果开启了一个新的路径, 那么判断的就是点是否在新的路径的图形中
54         * */
55         console.log(oCtx.isPointInPath(x, y));
56     }
57 </script>
58 </body>
59 </html>

21-canvas事件监听

原文:https://www.cnblogs.com/gsq1998/p/12166274.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!