繁体   English   中英

快速简便的jQuery滚动题

[英]Quick and easy jQuery scroll question

我正在开发一个网站,当用户到达页面中的某些部分等时,将某些类添加到正文中。因此,我必须将 function 绑定到滚动事件。

像这样缓存scrollTop()是否更好(简短的例子,实际的 function 更长):

scrollcheck: function() {

    var top = main.documentquery.scrollTop();

    if(top > 60) {stuff}
    if(top > 220) {more stuff}

还是只在所有情况下使用main.documentquery.scrollTop()

documentquery$(document) ,我记得缓存很好,但我不确定scrollTop()

是的,最好缓存它,但最好限制对这个 function 的调用。 这可能会对性能产生更大的影响。 特别是,我会按照以下方式使用超时模式:

(function() {
    var _timeout = null;
    function onScrollHandler() {
        if (_timeout) {
            clearTimeout(_timeout);
        }
        _timeout = setTimeout(function() {
            _timeout = null;
            realScrollcheck();
        }, 500);
    }
    $(window).scroll(onScrollHandler);
 })();

在您的 function(此处称为realScrollcheck )运行的最后一次滚动之后会有半秒的延迟,但在 99% 的情况下这是可以接受的。 随意调整超时。 :-)

是的。 最好存储该值而不是每次都调用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM