我有一個<canvas>
元素跨越我的網頁的寬度和高度,像一個背景。它具有依賴於鼠標座標的交互式元素。當畫布在它自己的塊中時(即沒有任何畫布),交互元素工作正常。但是現在它已經有了divs,它並沒有採用任何鼠標交互。使帆布註冊DIV鼠標移過它
下面是我對鼠標移動的東西JavaScript代碼。爲什麼頂部的物品會影響它拾取鼠標的xy座標,我該如何解決它?
var mouse = {x:-100,y:-100};
var mouseOnScreen = false;
canvas.addEventListener('mousemove', MouseMove, false);
canvas.addEventListener('mouseout', MouseOut, false);
var MouseMove = function(e) {
if (e.layerX || e.layerX == 0) {
//Reset particle positions
mouseOnScreen = true;
mouse.x = e.layerX - canvas.offsetLeft;
mouse.y = e.layerY - canvas.offsetTop;
}
}
var MouseOut = function(e) {
mouseOnScreen = false;
mouse.x = -100;
mouse.y = -100;
}
var update = function(){
var i, dx, dy, sqrDist, scale;
//...... this chunk is the only part of the function that references the mouse
dx = parts[i].x - mouse.x;
dy = parts[i].y - mouse.y;
sqrDist = Math.sqrt(dx*dx + dy*dy);
if (sqrDist < 20){
parts[i].r = true;
}
.....
}
是啊,我需要點擊一個按鈕或兩個在頂部的div,所以這是行不通的。雖然很高興知道!任何你知道如何做鼠標事件到畫布座標的機會嗎? – Acoustic77
也許使用'fillRect'和'fillText'在畫布上繪製按鈕,然後在使用按鈕矩形中單擊畫布時響應? – markE
由於帆布不需要比鼠標的位置等進行交互,我寧願它只是跟蹤比重新設計我在它的div鼠標位置。該div的要複雜得多 – Acoustic77