似乎在 Safari(版本:9.1)中,jQuery 和普通 JavaScript 都无法捕获滚动事件。
我的目标是捕获滚动位置,如果它低于 50px,则通过添加一个类来修复导航栏,否则删除该类。
我放置在下面的代码片段适用于 Chrome、Firefox 和 IE,但不适用于 Safari。
$(window).on('scroll', function(){
if( $(window).scrollTop()>50 ){
$('.navbar').addClass('nav-fixed');
}
else {
$('.navbar').removeClass('nav-fixed');
}
});
最佳答案
我在 Safari v. 10.0.1 中遇到了同样的事情。
window.addEventListener('scroll',function() {
// Nothing happens here in Safari. Scroll event is never fired.
});
编辑:我的 CSS 存在问题,该问题已解决。我有一些用于滚动捕捉点的旧内容(我不需要),但我忘记从 CSS 中删除它们。在围绕我的内容的 div 上,我有
height: 100vh;
因此,窗口上的滚动事件不会被触发是有道理的,因为我会在 div 内滚动。
关于javascript - Safari 和 $(window).on ('scroll' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40419300/