Я боюсь с этим некоторое время. Я рисую сетку на холсте. Я добавляю mousemove eventHandler и отслеживаю позиции mouseX и mouseY. Я хотел бы иметь возможность рассчитать расстояние от позиции мыши до элемента в сетке. Я не могу понять, что это правильно, я пробовал несколько разных решений, например, добавление цикла в обработчик mousemove и использование requestAnimationFrame, но оба решения очень медленные.Мышь Близость к объекту Javascript
Вот мой код ниже:
function setupCanvas(){
canvas = document.getElementById('canvas');
ctx = canvas.getContext('2d');
width = canvas.width = window.innerWidth;
height = canvas.height = window.innerHeight;
blockWidth = width/2 - 150;
blockHeight = height/2 - 100;
gridArray = [];
gridWidthArray = [];
ctx.fillRect(0,0,width,height);
//drawGrid();
drawInitGrid();
canvas.addEventListener('mousemove',onMouseMoveHandler);
}
function drawInitGrid(){
for(x = 0; x<16; x++){
for(y = 0; y<11; y++){
var gridBlock = new GridBlock((blockWidth) + x*20, (blockHeight) + y*20, blockWidth, blockHeight);
gridBlock.render(ctx);
gridArray.push(gridBlock);
//gridWidthArray.push(gridBlock.xPos)
}
}
}
function onMouseMoveHandler(e){
if(containerBounds(e)){
mouseX = e.offsetX;
mouseY = e.offsetY;
console.log(mouseX, mouseY);
//console.log(gridWidthArray);
for(var grid in gridArray){
//console.log(gridArray[grid].xPos)
}
}
}
Я также попытался добавить MouseEvent в объекте GridBlock, но это также не похоже на работу.
Не могли бы вы привести рабочий пример? (jsfiddle или так) – dwana
Я только что установил это - http://codepen.io/fried/pen/YPENQg Хотя по какой-то причине - невозможно заставить обработчик мышки правильно работать в примере – Fred