在这个页面http://eisenpar.com/chocolate/index-free.html上,我试图创建一个效果:如果你在页面的顶部并进行滚动,页面会在窗口高度上滚动,并出现一个固定的导航。它在Chrome、Opera和Edge上都能正常工作(我还没有在Safari上测试过),但在火狐和IE11上,这个效果就崩溃了:它会滚动到底部,然后--没有任何停顿地滚动到顶部。在IE中它会显示导航,在FF中它不会,只是把我送到页面的顶部。
下面是我实现此效果的脚本:
var scrollBool = false;
jQuery(window).scroll(function() {
var winHeight = window.innerHeight;
navHeight = jQuery('nav').outerHeight();
if (scrollBool == false) {
scrollBool = true;
if(jQuery('nav').hasClass('fixed')) {
if (jQuery('body').scrollTop() + 10 < winHeight) {
jQuery('nav').removeClass('fixed');
jQuery("html, body").stop().animate({
scrollTop: jQuery('header').offset().top
}, 700, function() {
scrollBool = false;
});
} else {
scrollBool = false;
}
} else {
if (jQuery('body').scrollTop() < winHeight) {
if(jQuery('nav a, .link-block a').hasClass('in-scroll')) {
} else {
jQuery("html, body").stop().animate({
scrollTop: jQuery('header').offset().top + winHeight
}, 700, function() {
scrollBool = false;
jQuery('nav').addClass('fixed');
});
}
} else {
scrollBool = false;
}
}
}
});发布于 2017-06-26 21:02:27
终于-修复了。FF有jQuery('body').scrollTop()的问题,它不能正确地理解它,如果我把它改成jQuery(window).scrollTop(),一切都解决了
https://stackoverflow.com/questions/44759761
复制相似问题