javascript - animate() 更新速度不够快

标签 javascript jquery html css

我正在制作一个保留在页面顶部的导航栏。当用户向下滚动时,此栏会缩小,当用户返回页面顶部时,导航栏会恢复到原来的尺寸。

问题:当用户向下滚动时,导航栏按预期缩小。但是,如果用户快速滚动回页面顶部,导航栏仍然缩小,并且 scrollTop() 回调函数中的 animate() 函数会在几秒后触发秒。

为了调试它,我加入了 console.log($(window).scrollTop()); 来告诉我用户在页面上的当前位置。当用户滚动时,我得到 console.log 输出。 但是 {console.log('animated'); 应该在动画完成时触发,直到 console.log 几秒后才出现。 log($(window).scrollTop()); 输出 0

如何让 animate() 在用户向上滚动时快速响应?

JS代码

var navBar = $('#navbar-inner');
var top = navBar.css('top');
$(window).scroll(function() {
    console.log($(window).scrollTop());
    if($(this).scrollTop() > 50) {
        navBar.animate({'marginTop':'-20', 'height':'60'}, 300);
    } else {
        navBar.animate({'marginTop':'0', 'height':'80'}, 300, function() 
            {console.log('animated');});
    }
});

最佳答案

(发表我的评论作为答案)

使用 .stop() 在开始新动画之前停止任何正在进行的动画。

关于javascript - animate() 更新速度不够快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11234400/

相关文章:

javascript - 带有特殊字符的JS元素标签

javascript - 有没有办法在 NodeJS 文件范围动态中获取变量名?

javascript - dbs中只有一个文档 - 如何更新它?

php - jQuery 到数据库 - 带验证的注册表单

javascript - 删除周六和周日,仅获取该月中的几天

jquery - 响应式网页上的下拉菜单不起作用

javascript - 从 html 按钮属性获取值

time - 时间标签中的今天时间

php - 滚动时如何使表格不越位?

javascript - 删除或重复非单词字符,例如 HTML 文本区域中的换行符,这些字符会导致 modsecurity 出现错误