当前位置: 首页 > 面试题库 >

jQuery scroll()检测用户何时停止滚动

漆雕原
2023-03-14
问题内容

好的。

$(window).scroll(function()
{
    $('.slides_layover').removeClass('showing_layover');
    $('#slides_effect').show();
});

我可以从我的理解中得知某人正在滚动。因此,我试图找出有人停下来时该如何捕捉。从上面的示例中,您可以看到发生滚动时,我正在从一组元素中删除一个类。但是,我想在用户停止滚动时重新打开该类。

这样做的原因是,我打算在页面滚动时进行中转节目,以使页面具有我正在尝试的特殊效果。但是我尝试在滚动时删除的一个类与该效果冲突,因为它对某种性质是透明的。


问题答案:
$(window).scroll(function() {
        clearTimeout($.data(this, 'scrollTimer'));
        $.data(this, 'scrollTimer', setTimeout(function() {
            // do something
            console.log("Haven't scrolled in 250ms!");
        }, 250));
    });

更新资料

我写了一个扩展来增强jQuery的默认on-event-handler。它将一个或多个事件的事件处理函数附加到选定的元素,如果在给定间隔内未触发事件,则调用处理函数。如果您只想在延迟(例如resize事件等)之后才触发回调,则此功能很有用。

检查github-repo是否有更新很重要!

https://github.com/yckart/jquery.unevent.js

;(function ($) {
    var on = $.fn.on, timer;
    $.fn.on = function () {
        var args = Array.apply(null, arguments);
        var last = args[args.length - 1];

        if (isNaN(last) || (last === 1 && args.pop())) return on.apply(this, args);

        var delay = args.pop();
        var fn = args.pop();

        args.push(function () {
            var self = this, params = arguments;
            clearTimeout(timer);
            timer = setTimeout(function () {
                fn.apply(self, params);
            }, delay);
        });

        return on.apply(this, args);
    };
}(this.jQuery || this.Zepto));

像其他任何处理程序onbind-event处理程序一样使用它,除了可以在最后传递一个额外的参数外:

$(window).on('scroll', function(e) {
    console.log(e.type + '-event was 250ms not triggered');
}, 250);

(此演示使用resize代替scroll



 类似资料:
  • 问题内容: 当用户滚动页面时,我想做一些有趣的jQuery东西。但是我不知道如何解决这个问题,因为只有方法。 有任何想法吗? 问题答案: 您可以使每次用户滚动时都有一个超时被覆盖。这样,当他在一定毫秒后停止运行时,您的脚本将运行,但是如果他在此期间滚动,则计数器将重新开始,并且脚本将等待直到完成滚动为止。 更新: 因为这个问题又采取了一些行动,所以我认为我不妨使用添加事件的jQuery扩展对其进行

  • 问题内容: 我正在基于此页面使用脚本标签长轮询技术实现Comet 。 一个问题(我认为没有解决方案)是“厄运的th子”-浏览器继续将文档永远显示为“正在加载”,并使工具栏上的“停止”按钮保持启用状态。这种品牌的意义,因为该文件 是 仍然加载,虽然它的效果并不理想,我想我可以住在一起。 但是,第二个问题是,如果用户实际单击“停止”,则浏览器将停止加载我的脚本标签,并且我必须依靠超时来重新启动Come

  • 问题内容: 我已经设置了一个片段,当单击该片段时会将页面部分滚动到视图中,问题是,如果用户想在动画中间滚动,则滚动会有点断断续续。 如果用户手动滚动,如何停止jquery动画? 问题答案: 将功能更改为此: 这将: 如果用户手动滚动(仅在动画过程中),则停止动画 不会妨碍您正常的jQuery动画,例如其他一些答案 一些额外的信息: 您为什么要绑定所有这些事件?“滚动鼠标滚轮等…” 有许多不同类型的

  • 问题内容: 我有一个div框(称为“通量”),里面包含可变数量的内容。此divbox的溢出设置为auto。 现在,我想做的是,当使用滚动到此DIV框的底部时,将更多内容加载到页面中,我知道如何执行此操作(加载内容),但是我不知道如何检测用户何时滚动到div标签的底部?如果我想在整个页面上这样做,我会选择.scrollTop并将其从.height中减去。 但是我似乎无法在这里这样做? 我尝试从磁通量

  • 问题内容: 我有一个包含不同部分的网站。我正在使用segment.io来跟踪页面上的不同操作。如何检测用户是否滚动到div的底部?我尝试了以下操作,但似乎在页面上滚动后立即触发,而不是在到达div底部时触发。 问题答案: 您可以用来检查底部是否已被查看

  • 所以我有一个问题,我对android编程很陌生,我开始编程android应用程序才6-8周,所以我可能是盲人,看不到简单的答案,但我的问题是: 我正在做一个学校项目,我试图开发一个类似于今天日历分割视图中的日历(下面的一个) 我用GridLayoutManager创建了一个RecyclerView,如下所示: 在此之前,一切都很好,但我正在尝试实现一个按钮,该按钮将日历设置为今天的日期,问题是当我