Safari和$(窗口).on('滚动')

时间:2016-11-04 09:36:43

标签: javascript jquery safari

似乎在Safari(版本:9.1)中,jQuery和vanilla JavaScript都没有捕获滚动事件。

我的目标是捕捉滚动位置,如果它低于50px,则通过添加类来修复导航栏,否则删除该类。

我下面的代码片段适用于Chrome,Firefox和IE,但不适用于Safari。

$(window).on('scroll', function(){
    if( $(window).scrollTop()>50 ){
        $('.navbar').addClass('nav-fixed');
    } 
    else {
        $('.navbar').removeClass('nav-fixed');
    }
});

1 个答案:

答案 0 :(得分:0)

我在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中滚动。