【发布时间】:2018-12-25 08:50:36
【问题描述】:
这里有一个 jquery / javascript noob 问题。我有一个子导航元素,一旦有人点击某个滚动点,我就会将它贴在主导航的底部。为此,我将 subnav 元素偏移了主 nav 元素的高度,如下所示。
$(function() {
$('.sticky-nav').stickybits({
useStickyClasses: true,
stickyBitStickyOffset: $('.navbar-fixed-top').outerHeight(),
});
});
我遇到的问题是“.navbar-fixed-top”在移动设备/平板电脑和桌面尺寸(高度变化为 992 像素)下的高度不同,如果有人调整屏幕大小,偏移量会变得混乱(即,如果他们从桌面开始,然后调整到移动/平板电脑的大小,则子导航上方的空间太大,因为桌面上的主导航更高)。
我的问题是,当.navbar-fixed-top元素的高度发生变化时,如何更新上面的代码来动态更新outerHeight?
我尝试了下面的代码,灵感来自这个问题的答案:Resize element width on window resize jquery,但它不起作用
$(function() {
var topNavHeight = $('.navbar-fixed-top').outerHeight();
$(window).on('resize', function(event) {
var topNavHeight = $('.navbar-fixed-top').outerHeight();
});
$('.sticky-nav').stickybits({
useStickyClasses: true,
stickyBitStickyOffset: topNavHeight,
});
});
谢谢!
【问题讨论】:
-
你不需要销毁然后用新的高度重新初始化粘性插件吗?此外,在调整大小中包含 var 意味着您正在声明一个新的本地 var 而不是更新全局 var
-
@Pete - 我认为你是对的,看起来 halcyon 在下面采取了类似的方法。另外,我想感谢您更改原始评论的语言。您删除了“您意识到……”,使其更像是教学评论。作为 jquery / javascript noob,局部变量问题是我没有意识到的,感谢您以具有启发性的方式指出这一点。
标签: javascript jquery