在HTML5画布上移动时跟踪鼠标坐标的简单方法
Simple way to track mouse coordinates while moving over HTML5 canvas
在HTML5画布上移动鼠标时,有没有一种简单的方法可以获得相对鼠标坐标?
我发现了这个:
function getMousePos(canvas, evt){
// get canvas position
var obj = canvas;
var top = 0;
var left = 0;
while (obj && obj.tagName != 'BODY') {
top += obj.offsetTop;
left += obj.offsetLeft;
obj = obj.offsetParent;
}
// return relative mouse position
var mouseX = evt.clientX - left + window.pageXOffset;
var mouseY = evt.clientY - top + window.pageYOffset;
return {
x: mouseX,
y: mouseY
};
}
但这对我来说太沉重了。在使用画布时使用框架(如Kinetic)来简化这些事情有什么原因吗?
如果您没有在画布上使用mousemove
,请使用以下内容:
$(function () {
canvas = document.getElementById('canvas');
canvas.onmousemove = mousePos;
});
function mousePos(e) {
if (e.offsetX) {
mouseX = e.offsetX;
mouseY = e.offsetY;
}
else if (e.layerX) {
mouseX = e.layerX;
mouseY = e.layerY;
}
}
您可以完全定位画布,然后移除while循环。
最终,如果画布不移动,您可以缓存它的偏移量,然后使用缓存的值。
为了涵盖所有情况:如果画布的位置为fixed
,则无需考虑滚动:pageXOffset
、pageYOffset
。
相关文章:
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- AngularJS-如何在mousemove上存储鼠标坐标
- 通过鼠标点击获取X和Y坐标(javascript)
- 当鼠标停止或改变方向时获取鼠标坐标
- D3折线图鼠标悬停坐标效果
- 将鼠标坐标保存在阵列中
- 如何以百分比计算鼠标坐标 javascript
- 画布:当存在*border*时,获取鼠标坐标
- 如何在Fabric.js上获取鼠标坐标
- Javascript/Canvas-查找相对于坐标网格位置的鼠标坐标
- 如何在JSP页面中使用JavaScript捕获鼠标拖动坐标
- 检查鼠标光标是否在带坐标的数组范围内
- 获取画布中图像内的鼠标坐标
- 如何在相对定位的元素内获取鼠标的坐标
- HTML5画布绘图应用程序中的鼠标坐标漂移
- 画布 - 在调整窗口大小时转换鼠标坐标
- HTML5 画布鼠标侦听器坐标未定义
- 滚动弄乱了我的画布鼠标坐标 - Javascript Telerik Mobile
- 画布使事件在鼠标悬停在特定坐标上时激活
- 我如何获得图像坐标鼠标悬停与three.js