Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-在网格上映射鼠标单击_Javascript_Arrays_Grid_Mapping - Fatal编程技术网

Javascript-在网格上映射鼠标单击

Javascript-在网格上映射鼠标单击,javascript,arrays,grid,mapping,Javascript,Arrays,Grid,Mapping,我有一个由javascript数组组成的立方体网格。栅格尺寸存储在变量中。因此,dim是单个立方体的尺寸,间距是每个立方体之间的距离(dim和间距以像素表示) 现在,考虑到我总是可以让用户鼠标位置在变量g.mouseX和g.mouseY中,为什么这个代码并不总是那么精确 var j = Math.round(g.mouseX / (dim+spacing)); var i = Math.round(g.mouseY / (dim+spacing)); // user clicked on th

我有一个由javascript数组组成的立方体网格。栅格尺寸存储在变量中。因此,
dim
是单个立方体的尺寸,
间距
是每个立方体之间的距离(
dim
间距
以像素表示)

现在,考虑到我总是可以让用户鼠标位置在变量
g.mouseX
g.mouseY
中,为什么这个代码并不总是那么精确

var j = Math.round(g.mouseX / (dim+spacing));
var i = Math.round(g.mouseY / (dim+spacing));

// user clicked on the cell grid[j][i]
有时我点击一个立方体,但看起来他正在考虑附近的那个。看起来用户点击的整个映射被移动了半个
dim
。可能使用Math.round会让一切都变得几乎错误,但我看不到任何其他方法可以在用户单击网格中的精确坐标时转换如此混乱和不可预测的值

希望任何人都能帮上忙


先谢谢你

您希望截断,而不是圆形。您可以使用
Math.floor
,它将(例如
3.7
映射到
3

var j = Math.floor(g.mouseX / (dim+spacing));

但实际上,为什么不只绑定每个网格单元的
onclick
事件呢?

您想要的是截断,而不是取整。您可以使用
Math.floor
,它将(例如
3.7
映射到
3

var j = Math.floor(g.mouseX / (dim+spacing));

但实际上,为什么不绑定每个网格单元的
onclick
事件呢?

将尝试此方法!无法使用onclick,因为这些单元格不是CSS或HTML元素。我在画布上画画,所以从浏览器的角度来看,这些单元格不存在。我试试这个!无法使用onclick,因为这些单元格不是CSS或HTML元素。我在画布上画画,所以从浏览器的角度来看,这些单元格不存在。