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函数填充的变量,它会工作。