在页面

时间:2016-07-11 14:21:17

标签: jquery

页面加载后我使用

agenda_top = $('#agenda').offset().top;
travel_top = $('#travel').offset().top;
hotel_top =$('#hotel').offset().top;

存储页面内主要部分的位置。然后我用它们进行导航。例如。 $('#anchor').animate({ scrollTop: hotel_top }, 'ease');#anchor<body>

问题是在页面上有一个可扩展的表格,每行扩展我最初存储的位置变得不准确。我希望有一个函数,当我打开一行时我可以调用它,这将重新计算偏移量。我尝试调用我在页面加载时使用的相同功能,但因为当我调用它时,我不在页面的顶部,检索到的偏移是错误的。

我不知何故需要从文档透视图的顶部获取元素#travel#hotel的偏移量。这可能吗?

这里有一些数字。当页面加载偏移()。#hotel的顶部是2637后,我打开行,#hotel元素从顶部进一步移动后我再次偏移()。顶部但是这个时间它返回2059但它应该是MORE不小于原始数字,因为div现在已经扩展。这是我在浏览器窗口中滚动的时间。但是如果我手动滚动到窗口的顶部,那么hotel_top =$('#hotel').offset().top;我得到3137这是正确的nuber,但我不知道在页面内滚动时得到这个数字很热.. < / p>

1 个答案:

答案 0 :(得分:1)

通过考虑滚动条位置来解决这个问题,所以当我展开div时,我重新计算这样的位置position = element.offset().top + $(window).scrollTop();我实际上没有使用window,因为它为scrollTop()返回0但是我有一个div在<body>之后立即包装所有内容,我使用它。工作完美无缺。