我正在使用以下页面结构的网站:
我正在使用 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()
});
});
但是当我调整到移动视口时,偏移值似乎没有更新;直到向下滚动页面的数量等于现在隐藏的标题时,导航才会固定。
有任何想法吗?