濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 一個(gè)不錯(cuò)的HTML5 Canvas多層點(diǎn)擊事件監(jiān)聽實(shí)例

一個(gè)不錯(cuò)的HTML5 Canvas多層點(diǎn)擊事件監(jiān)聽實(shí)例

熱門標(biāo)簽:智能芯電話機(jī)器人 臨海地圖標(biāo)注app 地圖標(biāo)注柱狀圖 百度地圖標(biāo)注為什么總是封號(hào) 小朱地圖標(biāo)注 400開頭的電話好申請(qǐng)不 怎么做百度地圖標(biāo)注 咸陽(yáng)穩(wěn)定外呼系統(tǒng)軟件 四川移動(dòng)電銷外呼客戶管理系統(tǒng)
最近寫一個(gè)HTML5的游戲框架。今天寫到一個(gè)多層點(diǎn)擊事件的監(jiān)聽。覺得還是挺好玩的。于是把它從模塊中抽化出來了。以下代碼只是一些思想。具體實(shí)現(xiàn)肯定不是那么丑陋

復(fù)制代碼
代碼如下:

<!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>

標(biāo)簽:平頂山 公主嶺 山南 黃石 陜西 南平 黃石

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《一個(gè)不錯(cuò)的HTML5 Canvas多層點(diǎn)擊事件監(jiān)聽實(shí)例》,本文關(guān)鍵詞  一個(gè),不,錯(cuò)的,HTML5,Canvas,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《一個(gè)不錯(cuò)的HTML5 Canvas多層點(diǎn)擊事件監(jiān)聽實(shí)例》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于一個(gè)不錯(cuò)的HTML5 Canvas多層點(diǎn)擊事件監(jiān)聽實(shí)例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    贵德县| 沧源| 安多县| 元阳县| 特克斯县| 乡宁县| 乐东| 河东区| 庄浪县| 伽师县| 阳山县| 南郑县| 舞钢市| 辽中县| 封开县| 于田县| 淮安市| 丰都县| 张家川| 疏附县| 布尔津县| 闻喜县| 鄂托克前旗| 蓝田县| 盘锦市| 盐山县| 湖州市| 沛县| 宣武区| 山阴县| 金堂县| 随州市| 阿图什市| 三原县| 惠来县| 会东县| 岱山县| 富宁县| 新建县| 涪陵区| 玉屏|