2014-12-22 50 views
3

我使用一些简单的代码来让页面滚动到某个点时出现一个项目。代码在技术上有效,但是延迟很大。我有代码console.log一些调试值(滚动位置)。我发现,if语句没有运行,直到滚动停止后(或者当我看到的console.log“追赶”):为什么我在jquery中使用scroll()时会得到延迟?

$(window).scroll(function(){ 
    if($(window).scrollTop() >= 350) { 
     $('#logo').animate({'opacity':'1'}); 
    } else { 
     $('#logo').animate({'opacity':'0'}); 
    } 
}); 

这里是一个jsfiddel:http://jsfiddle.net/nzcxwdmx/1/

你”我会注意到,如果你等待足够长的时间,“logo here”这个词就会出现。你越滚越过350,时间越长。

+0

默认值持续时间(默认值:400)。尝试玩默认值。 –

回答

0

您使用的它defaul动画时间值instade使用requred时间值动画

fiddle

实施例代码

$(window).scroll(function(){ 
    var spos = $(window).scrollTop(); 
    $('#scroll').text(spos); 
    if(spos >= 350) { 
     $('#logo').animate({'opacity':'1'},200); 
    } else { 
     $('#logo').animate({'opacity':'0'},200); 
    } 
}); 
+0

这不是动画的时机问题。一旦滚动过350,动画开始需要很长时间。当它达到351或更高时,我需要它显示并在350或更低时隐藏。同样,它确实隐藏并显示这些值,但是到达这一点需要很长的时间。 – dcp3450

相关问题