gpt4 book ai didi

javascript - StickyNav - 调试

转载 作者:行者123 更新时间:2023-11-28 10:58:25 25 4
gpt4 key购买 nike

// STICKY NAVBAR

var num = 816; //number of pixels before modifying styles

$(window).bind('scroll', function () {
if ($(window).scrollTop() > num) {
$('.navbar').addClass('navbar-fixed-top');
} else {
$('.navbar').removeClass('navbar-fixed-top');
}
});

这是我的粘性导航栏代码(使用自定义的 Bootstrap 导航栏),它在桌面浏览器上运行得非常好......但是 var num 是以像素而不是 em。这不能很好地转化为移动设备。

有没有办法:

  • em 而不是 px 测量滚动或者……

  • 检测条何时到达窗口顶部,然后使其粘住而不是使用硬编码测量值?

最佳答案

您遇到的问题与移动设备上的不同测量无关,因为它在任何设备上始终以像素为单位进行测量和计算。您的导航栏的位置更有可能在移动设备上有所不同。

是的,一个解决方案是获取导航栏的当前偏移量并使用它来代替硬编码的“num”,如下所示:

var navbarOffset = $('.navbar').offset();
var num = navbarOffset.top;

但请记住,这种方法假设导航栏的位置在其生命周期内不会改变。一旦你处理了一个响应式设计,你应该在每次内容包装元素的大小发生变化时重新计算导航栏偏移量。这整件事有多精细,你可以在这里查看: https://github.com/zurb/foundation/blob/master/js/foundation/foundation.topbar.js

关于javascript - StickyNav - 调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22545171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com