javascript - Safari 和 $(window).on ('scroll' )

标签 javascript jquery safari

似乎在 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/

相关文章:

javascript - 图像在 Safari 中显示然后消失

iPad MP4 播放问题

javascript - Mongoose 在更新时对多个字段进行自定义验证

javascript - 如何使用 jquery 将 url 最后一个 id 添加到搜索框中

javascript - 遍历文本框插入不在数组中的值文本框

javascript - jQuery 动画 : Change the destination of a prop during the animation

javascript - 从多个事件中调用一次函数

java - Android 应用程序无异常退出

javascript - 循环中的简单 JavaScript 代码

objective-c - iOS - 将菜单项添加到 Safari "Open with"