Javascript 关闭firefox';什么是平滑滚动?

Javascript 关闭firefox';什么是平滑滚动?,javascript,jquery,Javascript,Jquery,Firefox新的平滑滚动功能会在动画的每一步触发滚动回调 有没有什么办法让它 仅在页面完成滚动时激发一个事件 使页面像在Chrome中那样突然滚动 试试这个: function throttle( fn, timeout ) { var tid = 0; return function() { clearTimeout( tid ); var args = [].slice.call( arguments ), ctx =

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

有没有什么办法让它

  • 仅在页面完成滚动时激发一个事件
  • 使页面像在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毫秒内没有滚动发生时,才会触发滚动


    这取决于你的目的。根据您的代码,我猜测您希望在用户向下滚动页面时触发动画,有点像保镖本:


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

    这是一个非常酷的效果!虽然不完全是你想要的?很好,但感觉比我想要的更粗糙。此外,它仅在滚动后100毫秒执行。除了预测某个特定时间(如100毫秒)外,无法预测用户何时停止滚动。即使在一个“非黑客”包中有类似的东西,实现也会在幕后使用这种方法。例如,“双击”仅为2次点击,点击之间的时间为
    x
    毫秒,例如300。