关闭火狐浏览器的平滑滚动

Turn off firefox's smooth scrolling?

本文关键字:平滑 滚动 火狐浏览器      更新时间:2023-09-26

Firefox 新的平滑滚动功能会导致滚动回调在动画的每一步触发。

FF和Chrome中的演示以查看差异

有没有办法让它

  1. 仅在页面完成滚动时触发一个事件
  2. 使页面像在Chrome中一样突然滚动

试试这个:

function throttle( fn, timeout ) {
    var tid = 0;
    return function() {
        clearTimeout( tid );
        var args = [].slice.call( arguments ),
            ctx = this;
        tid = setTimeout( function() {
            fn.apply( ctx, args );
        }, timeout );
    };
}
$(window).on("scroll", throttle( function() {
    $('div').eq(0).append('scroll happened');
}, 100));

只有在 100 毫秒内没有发生滚动时,它才会触发滚动。

http://jsfiddle.net/NLGHS/1/

这取决于

你的目的。我根据您的代码猜测您希望在用户向下滚动页面时触发动画,有点像保镖本:http://benthebodyguard.com/index.php

为此,请将动画绑定到页面中的位置。可以从传递给 scroll 方法的事件对象获取当前滚动位置。然后,您需要执行一些数学运算,以确定当前滚动位置是否已发生足以触发下一个动画的变化。