如何获取固定元素的 "original" offset().top?
How to get "original" offset().top of a fixed element?
我正在创建一个 StickyNav,当 window 滚动到达 stickyNav 的 offset().top 时应该修复它(这里没有新内容)。
我在页面加载时缓存了 StickyNav 的 offset().top,但是这个变量对于移动设备和桌面是不一样的,所以当我调整屏幕大小时,这个 StickyNav 在不同的点获得 "fixed"(取决于如果我首先在移动设备或桌面设备上加载页面)
我目前的解决方法是在 window 调整大小时更新此 offset().top 变量,方法如下 >
getOffSetTop : function(){
var stickyNavBar = $(document).find('.stickynav');
var offSetTop = stickyNavBar.offset().top;
if(stickyNavBar.hasClass('fixed')){
stickyNavBar.removeClass('fixed');
offSetTop = $('.stickynav').offset().top;
stickyNavBar.me.addClass('fixed');
}
return offSetTop;
}
哪个可行,但我不知道是否有更好的方法来实现这一点?
也许是一个简化版本:
if(typeof($(".stickyNavBar.fixed")) != undefined)
return $("stickyNavBar.fixed").offset().top
else
return 0:
对于移动设备上的格式不佳,我们深表歉意。
我正在创建一个 StickyNav,当 window 滚动到达 stickyNav 的 offset().top 时应该修复它(这里没有新内容)。
我在页面加载时缓存了 StickyNav 的 offset().top,但是这个变量对于移动设备和桌面是不一样的,所以当我调整屏幕大小时,这个 StickyNav 在不同的点获得 "fixed"(取决于如果我首先在移动设备或桌面设备上加载页面)
我目前的解决方法是在 window 调整大小时更新此 offset().top 变量,方法如下 >
getOffSetTop : function(){
var stickyNavBar = $(document).find('.stickynav');
var offSetTop = stickyNavBar.offset().top;
if(stickyNavBar.hasClass('fixed')){
stickyNavBar.removeClass('fixed');
offSetTop = $('.stickynav').offset().top;
stickyNavBar.me.addClass('fixed');
}
return offSetTop;
}
哪个可行,但我不知道是否有更好的方法来实现这一点?
也许是一个简化版本:
if(typeof($(".stickyNavBar.fixed")) != undefined)
return $("stickyNavBar.fixed").offset().top
else
return 0:
对于移动设备上的格式不佳,我们深表歉意。