gpt4 book ai didi

javascript - 代码在 Safari 和响应式浏览器中无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 08:18:22 25 4
gpt4 key购买 nike

我有以下代码“显示/隐藏”我的导航离开屏幕顶部,然后再次将其拉下。

jQuery(document).ready(function($){
var didScroll;
var lastScrollTop = 0;
var delta = 5;
var navbarHeight = $('nav').outerHeight(true);

$(window).scroll(function(event) { didScroll = true; });

setInterval(function() {
if (didScroll) {
hasScrolled();
didScroll = false;
}
}, 0);

function hasScrolled() {
if($( window ).width() > 768) {
var st = $(this).scrollTop();
if (Math.abs(lastScrollTop - st) <= delta)
return;
if (st > lastScrollTop) {
// Scroll Down
$('#screen-nav').removeClass('nav-down').addClass('nav-up');
} else {
$('#screen-nav').removeClass('nav-up').addClass('nav-down');
}

}
lastScrollTop = st;
}

});

CSS

#screen-nav {
position: fixed;
top: 0; left: 0; right: 0;
}

#screen-nav.nav-up { top: -100px; }
#screen-nav.nav-down { top: 0; }

问题是,在 safari 浏览器上,当屏幕从移动尺寸(所有浏览器上 <768px)变为屏幕尺寸时,有时会添加 .nav-up 类并且导航不显示。但仅当用户滚动到页面顶部时。

不确定是否有更好的方法来编写代码以确保正常运行。

最佳答案

我看到你正在使用 this例子。他的 fiddle 也很好用。唯一的问题是,在浏览器上调整大小与显示导航到位无关。您应该可以单独添加它。

$(window).resize(function(){
$('#screen-nav').removeClass('nav-up').addClass('nav-down')
});

我更新了他的原文fiddle以反射(reflect)添加的窗口调整大小处理。

关于javascript - 代码在 Safari 和响应式浏览器中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45736500/

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