0

我正在使用以下页面结构的网站:

在此处输入图像描述

我正在使用 Affix 插件,这样当用户滚动通过标题时,导航将固定在页面顶部,如下所示:

在此处输入图像描述

该网站是响应式的,当它在移动视口中时,标题完全隐藏在display: none. 问题是我似乎无法让 Affix 使用新的偏移量“重置”,现在该偏移量为 0,因为导航始终位于移动视口中的页面顶部。

我尝试了以下方法:

$(window).resize(function () {
    $("nav").affix({
        offset: $("nav").position()
    });
});

但这似乎没有任何作用。当我缩小到移动视口时,导航不会变得固定,直到我向下滚动页面的量等于标题的大小(现在完全隐藏了display: none)。

我还尝试在重新启用之前禁用 Affix 插件:

$(window).resize(function () {
    $(window).off('.affix');

    $("nav").affix({
        offset: $("nav").position()
    });
});

但是当我调整大小时,Affix 插件被禁用但似乎没有重新初始化,所以即使我只调整了少量(不是一直到移动视口,所以标题仍然可见),导航当我滚动经过标题时不会固定。

我还尝试使用函数提供偏移量:

function getOffset() {
    return $("nav").position();
};

$(document).ready(function () {
    $("nav").affix({
        offset: getOffset()
    });
});

但是当我调整到移动视口时,偏移值似乎没有更新;直到向下滚动页面的数量等于现在隐藏的标题时,导航才会固定。

有任何想法吗?

4

1 回答 1

1

如果在移动视口中您只需使用 position:fixed; 是否适用于您的设计?顶部:0;左侧:0;宽度:100%;对于导航 div,然后在顶部给页面内容 div 一些填充,以便清除导航?

于 2013-09-16T02:28:40.473 回答