【问题标题】:How to get "original" offset().top of a fixed element?如何获得固定元素的“原始”偏移()。顶部?
【发布时间】:2016-03-11 22:24:53
【问题描述】:

我正在创建一个 StickyNav,当窗口滚动到达 StickyNav 的 offset().top 时,它应该被修复(这里没有新内容)。

我在页面加载时缓存了 StickyNav 的 offset().top,但这个变量对于移动设备和桌面设备是不一样的,所以当我调整屏幕大小时,这个 StickyNav 会在不同的点“固定”(取决于我是否第一次加载移动或桌面上的页面)

我目前的解决方法是在窗口调整大小时更新这个 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;
}

哪个有效,但我不知道是否有更好的方法来实现这一点?

【问题讨论】:

    标签: javascript jquery offset sticky


    【解决方案1】:

    也许是缩短版:

    if(typeof($(".stickyNavBar.fixed")) != undefined)

    return $("stickyNavBar.fixed").offset().top

    else

    return 0:

    抱歉,在移动设备上格式不佳。

    【讨论】:

    • 嗨 Lewis!,感谢您的回复,提示我如何改进我的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 2021-11-20
    相关资源
    最近更新 更多