javascript - jQuery:有些东西正在延迟动画

标签 javascript jquery

是什么导致动画延迟? 网站上的所有 jQuery 都有某种延迟..

$(function(){
  $(window).scroll(function() {
       var elementTop = $('body').offset().top; 
       var position = elementTop+ $(window).scrollTop();
       if(position >= 20){
           $('#top').animate({top: '40px'}, 300);
       } else if(position < 20){
           $('#top').animate({top: '80px'}, 300);
       }
console.log(position);
  });   
});

直播: Link here - 这是菜单/导航

最佳答案

每次滚动时都会触发您的代码。 animate 方法被串联起来,一个接一个地运行。为了达到你想要的效果,你需要停止当前的动画并开始一个新的动画:

$(function(){
    $(window).scroll(function(){
        var elementTop = $('body').offset().top,
        position = elementTop+ $(window).scrollTop();

        if (position >= 20){
            $('#top').stop().animate({top: '40px'}, 300);
        }
        else if (position < 20) {
           $('#top').stop().animate({top: '80px'}, 300);
        }
    });   
});

关于javascript - jQuery:有些东西正在延迟动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17257729/

相关文章:

javascript - spy 功能不起作用 - Jasmine

javascript - 如何在 Meteor JS 中集成 TinyMCE 和 CKEditor?

javascript - 使用jQuery获取表单输入字段?

javascript - JQUERY 问题,为什么我不能在本地托管的 iframe 内进行更改?

javascript - 在调整大小时/期间将缩放/响应式图像粘贴到 div 底部

JavaScript 原型(prototype)基础知识

javascript - 更改脚本以删除事件 <ul> 目标上的类

javascript - 如何从 jqgrid 和 Laravel 上传多个文件?

javascript - Salesforce - 如何在 apex :repeat to a javascript function? 中传递特定值

javascript - Sequelize 使用对象类型创建模型