希望这不是一个重复的问题,因为我一直在寻找这个问题的一段时间,但还没有找到一个干净的解决方案。也许我只是没有正确搜索。
我有一个导航栏,当它到达视口的顶部时,其位置设置为通过javascript固定。我使用jquery 1.11.3来获取offset()。元素的顶部,但是当视口的垂直高度发生变化时,这个值似乎不会自动更新。
例如,在带有Chrome的Android平板电脑上,地址栏会消失,“'调整大小'事件被触发但元素的offset().top
保持不变,导致我的导航栏保持静态,尽管它已经滚过视口的顶部并且现在应该被修复。我也使用超时来读取调整大小的新值,但无济于事。
有没有办法让jquery重新考虑视口大小,以便我不会根据新值更新内部偏移量?或许这不是要走的路?
答案 0 :(得分:1)
我遇到了和你一样的问题。在窗口调整大小时,我的元素偏移值未更改。就我而言,我的元素处于固定位置。也许你的呢?但是如果我滚动页面,则元素偏移会发生变化。所以在我的情况下,我只是将一个固定的偏移值用于我的元素。
答案 1 :(得分:0)
Try implement this code in your window resize event
elementTop = $('#element').offset().top;
windowTop = $(window).scrollTop();
if( elementTop - windowTop < 0) {
// write your set fixed position code here
}