0

我正在使用 jquery 插件来显示页面。我能够在 Chrome 和 IE 中捕获整个页面的坐标,但是当我尝试对 Firefox 执行相同操作时,它会捕获屏幕坐标而不是页面。有人可以帮忙吗。

代码 :

$('.page').bind('click', function(event) {      

    var x;
    var y;


    if (!(event.offsetX || event.offsetY)) {

     x = event.clientX;
         y = event.clientY;

        }
        else {
            x = event.offsetX;
            y = event.offsetY;
        }               

    alert("x :" +x +", y: " +y);
}); 
4

1 回答 1

4

当您使用 jQuery 时,请使用jQuery 为您规范化的事件对象的pageX和属性。从那个链接:pageY

事件属性

jQuery 标准化以下属性以实现跨浏览器的一致性:

  • 目标
  • 相关目标
  • 第X页
  • 第Y页
  • 哪一个
  • 元密钥

(我的重点。)

这些将可靠地与文档相关。如果您尝试获取相对于发生事件的元素的坐标,您可以通过以下方式找到该元素的位置offset,然后进行数学运算:

$(".page").click(function(event) {
    var pos = $(this).offset();

    console.log("Click relative to document: " + event.pageX + "x" + event.pageY);
    pos.left = event.pageX - pos.left;
    pos.top  = event.pageY - pos.top;
    console.log("Click relative to element:  " + pos.left + "x" + pos.top);
});

实例| 来源

于 2012-12-08T10:00:47.067 回答