Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery粘性函数在快速滚动到顶部时失败_Javascript_Jquery_Jquery Animate_Sticky_Onscroll - Fatal编程技术网

Javascript Jquery粘性函数在快速滚动到顶部时失败

Javascript Jquery粘性函数在快速滚动到顶部时失败,javascript,jquery,jquery-animate,sticky,onscroll,Javascript,Jquery,Jquery Animate,Sticky,Onscroll,我正在使用对象中的函数在滚动时将侧面板转换为顶部面板 看起来像这样我缩小了代码并删除了对象名称: $(document).on("scroll", vars.stickyNav ); var vars = { ... etc undoStick: function() { vars.sticked = false; vars.stickyMenu.removeClass('_sticked'); return vars.sticky

我正在使用对象中的函数在滚动时将侧面板转换为顶部面板

看起来像这样我缩小了代码并删除了对象名称:

$(document).on("scroll", vars.stickyNav );

var vars = { ... etc

    undoStick: function() {
        vars.sticked = false; 
        vars.stickyMenu.removeClass('_sticked');

        return vars.stickyMenu.animate({ 'top': '-60px' }, 0, function() {
            vars.clone.css({'left':-32,display:'none'});
        });
    },

    stickyNav: function() {
        if ( ! vars.sticked && vars.stickyHeight <= vars.scrollTop ) {
            vars.sticked = true;

            return vars.stickyMenu.addClass('_sticked').animate({ 'top': '40px'}, 0, function(){
                vars.clone.show(null);
                vars.clone.css('left',0);
            });
        } 
        else if ( vars.sticked && vars.stickyTop >= vars.scrollTop ) {
            return vars.undoStick();
        }
    }
}
问题是。。如果我从页面底部的某个地方快速滚动到顶部,面板不会粘回到侧面。如果我滚动正常/慢速/正常-快速,它会工作

大多数变量是在scroll函数之外定义的。有一个附加的scroll函数绑定到窗口,用于更新scroll上的$window.scrollTop变量

这种行为的原因可能是什么?动画功能设置为0毫秒


PS:有一个css转换立方贝塞尔

找到了问题。如果我将动画转换为css,一切都可以正常工作。谢谢


Sry,快。它工作得更好,但并非总是如此。

这可能是由于滚动步骤造成的。如果你在触发功能上加一点延迟,它会工作吗?我怎么能做到呢?setTimeout?看起来取决于文档高度。文档越高,发生的错误就越多。这么多事件被触发了?好的。如果我使用$window.scrollTop,而不是由另一个scroll函数填充的变量,它会工作。