返回顶部
首页 > 资讯 > 前端开发 > VUE >一个不错的HTML5 Canvas多层点击事件监听的编写方法
  • 596
分享到

一个不错的HTML5 Canvas多层点击事件监听的编写方法

2024-04-02 19:04:59 596人浏览 八月长安
摘要

这篇文章主要介绍“一个不错的HTML5 canvas多层点击事件监听的编写方法”,在日常操作中,相信很多人在一个不错的html5 Canvas多层点击事件监听的编写方法问题上存在疑惑,小编查阅了各式资料,整

这篇文章主要介绍“一个不错的HTML5 canvas多层点击事件监听的编写方法”,在日常操作中,相信很多人在一个不错的html5 Canvas多层点击事件监听的编写方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”一个不错的HTML5 Canvas多层点击事件监听的编写方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

代码如下:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/CSS">
.box > canvas {
position: absolute;
}
</style>
</head>
<body>
<div class="box">
<canvas id="layer1" width="200" height="200"></canvas>
<canvas id="layer2" width="500" height="500"></canvas>
</div>
<script type="text/javascript">
function getRect(obj) {
var x1 = obj.offsetLeft;
var y1 = obj.offsetTop;
var x2 = x1+obj.offsetWidth;
var y2 = y1+obj.offsetHeight;
return {
x1: x1,
y1: y1,
x2: x2,
y2: y2
};
}
function inside(x, y, rect) {
if(x>rect.x1 && x<rect.x2 && y>rect.y1 && y<rect.y2) {
return true;
}
else {
return false;
}
}
var trigger = {};
trigger.list = [];
trigger.listen = function() {
var list = trigger.list;
document.addEventListener('click',function(evt) {
for(var i=0; i<list.length; ++i) {
list[i](evt);
}
});
};
trigger.listen();
var l1 = document.getElementById('layer1');
var l2 = document.getElementById('layer2');
var dl1 = function(evt) {
if(inside(evt.clientX, evt.clientY, getRect(l1))) {
console.log('click');
}
}
trigger.list.push(dl1);
var dl2 = function(evt) {
if(inside(evt.clientX, evt.clientY, getRect(l2))) {
console.log('click2');
}
}
trigger.list.push(dl2);
</script>
</body>
</html>

到此,关于“一个不错的HTML5 Canvas多层点击事件监听的编写方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 一个不错的HTML5 Canvas多层点击事件监听的编写方法

本文链接: https://lsjlt.com/news/82558.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作