欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

  發(fā)布時(shí)間:2014-04-29 16:20:08   作者:佚名   我要評(píng)論
寫(xiě)到一個(gè)多層點(diǎn)擊事件的監(jiān)聽(tīng)。覺(jué)得還是挺好玩的。于是把它從模塊中抽化出來(lái)了,喜歡的朋友可以參考下
最近寫(xiě)一個(gè)HTML5的游戲框架。今天寫(xiě)到一個(gè)多層點(diǎn)擊事件的監(jiān)聽(tīng)。覺(jué)得還是挺好玩的。于是把它從模塊中抽化出來(lái)了。以下代碼只是一些思想。具體實(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>

相關(guān)文章

  • 如何在Canvas上的圖形/圖像綁定事件監(jiān)聽(tīng)的實(shí)現(xiàn)

    這篇文章主要介紹了如何在Canvas上的圖形/圖像綁定事件監(jiān)聽(tīng)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著
    2020-09-16
  • 如何在Canvas中添加事件的方法示例

    這篇文章主要介紹了如何在Canvas中添加事件的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)
    2019-05-21
  • html5中監(jiān)聽(tīng)canvas內(nèi)部元素點(diǎn)擊事件的三種方法

    這篇文章主要介紹了html5中監(jiān)聽(tīng)canvas內(nèi)部元素點(diǎn)擊事件的三種方法
    2019-04-28
  • 詳解Canvas事件綁定

    這篇文章主要介紹了詳解Canvas事件綁定的相關(guān)資料,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-27
  • HTML5 Canvas的事件處理介紹

    這篇文章主要介紹了HTML5 Canvas的事件處理介紹,本文講解了Canvas的限制、給Canvas元素綁定事件、isPointInPath方法、循環(huán)重繪和事件冒泡等內(nèi)容,需要的朋友可以參考下
    2015-04-24
  • HTML5 Canvas鼠標(biāo)與鍵盤事件demo示例

    本文的主要母的是演示HTML5 Canvas鼠標(biāo)事件,獲取Canvas對(duì)象上的鼠標(biāo)坐標(biāo),演示鍵盤事件通過(guò)鍵盤控制Canvas上對(duì)象移動(dòng),感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助
    2013-07-04
  • 詳解如何在Canvas中添加事件的方法

    這篇文章主要介紹了詳解如何在Canvas中添加事件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)
    2021-04-16

最新評(píng)論