通过滚动主页获得不同高度的点击位置

时间:2013-09-05 06:11:01

标签: javascript jquery html

我正在尝试用jQuery创建一个与众不同的游戏。 基本上,几个图像堆叠,绝对定位在容器中。在容器上方有一个带有徽标和菜单的页眉,它在图像容器上方大约120px左右。

当有人点击图片中的某个区域时,我会在那里放置一个新的div,带有正确的(V)标记或错误的(红色X)。

我正在尝试使用以下代码获取元素内部的单击位置(在click事件中返回以下使用的事件变量e只是为了清楚):

var parentOffset = $(this).parent().offset();  
var topOffset = e.clientY - offset.top;

我的问题是,当我将页面向下滚动到页脚区域时,顶部的偏移会发生变化,然后我不会将新标记div放在正确的高度。

当我滚动到页面顶部时,标记位置正确。

我之前创造过这样的游戏,却无法理解为什么突然计算错误: 似乎我得到距离减去滚动高度,但不确定。

感谢您的见解, Yanipan

1 个答案:

答案 0 :(得分:1)

我和Firebug玩了一下,看起来e.originalEvent.layerY正是你正在寻找的。

无论屏幕滚动的位置如何,它始终会在点击的对象中显示您的点击的绝对坐标。