我正在尝试用jQuery创建一个与众不同的游戏。 基本上,几个图像堆叠,绝对定位在容器中。在容器上方有一个带有徽标和菜单的页眉,它在图像容器上方大约120px左右。
当有人点击图片中的某个区域时,我会在那里放置一个新的div,带有正确的(V)标记或错误的(红色X)。
我正在尝试使用以下代码获取元素内部的单击位置(在click事件中返回以下使用的事件变量e只是为了清楚):
var parentOffset = $(this).parent().offset();
var topOffset = e.clientY - offset.top;
我的问题是,当我将页面向下滚动到页脚区域时,顶部的偏移会发生变化,然后我不会将新标记div放在正确的高度。
当我滚动到页面顶部时,标记位置正确。
我之前创造过这样的游戏,却无法理解为什么突然计算错误: 似乎我得到距离减去滚动高度,但不确定。感谢您的见解, Yanipan
答案 0 :(得分:1)
我和Firebug玩了一下,看起来e.originalEvent.layerY
正是你正在寻找的。 p>
无论屏幕滚动的位置如何,它始终会在点击的对象中显示您的点击的绝对坐标。