offsetX,offsetY和pageX,pageY有什么区别?

问题描述:

我需要一个弹出div,它会出现在我点击的锚下方。现在,我想确定锚点的onClick事件的x和y坐标。做这件事的最佳做法是什么?什么是可以使用的建议事件属性?offsetX,offsetY和pageX,pageY有什么区别?

OFFSETXOFFSETY是相对于父容器,而pageX属性pageY是相对于文档。请勿将其与.offset().position()混淆,其中.offset()与文档相关,.position()与父容器的.offset()相关。

像这样示例应该工作(JQuery的):

$('a').click(function(){ 
    var offset = $(this).offset(); 
    $('#popup_div').css('top',offset.top + 'px').css('left',offset.left + 'px').show(); 
}); 

http://api.jquery.com/offset/

http://api.jquery.com/position/

+1

这里的文档:(http://api.jquery.com/category/events/event-object/#post-850)似乎表明,pageX属性/ Y是相对于文档,而不是窗口,如果页面已滚动,则该窗口很重要。 – aaronstacy

+1

jQuery的使用对于回答这个问题完全是多余的。相信它或不*你可以*确定x,y坐标*而不需要* jQuery。 – Neil

+2

4年后......;) – AlienWebguy

2从jQuery文档网站提取

的.POSITION()方法允许我们检索元素相对的当前位置到偏移父

http://api.jquery.com/position/


的.offset()方法允许我们以检索元件相对于所述文件的的当前位置。

http://api.jquery.com/offset/