2013-04-22 93 views
1

我正在使用固定位置的顶部导航栏,在访客开始滚动后“出现”。 (出现在背景更改中,徽标大小调整和边框显示,以便它看起来与网页的其余部分分开,导航链接本身已在页面顶部显示)。当滚动回网页顶部时触发功能的问题

使用jQuery的scroll()和animate()显示部分非常简单。

$(window).scroll(function(){ 
    $('.logo img').animate({"height": "65px"}, 500); 
    $('#header').css({"border": "1px solid #999", "padding-top": "1px"}); 
}); 

但是,这是我绊倒被撤销更改当访问者滚动回到顶部,使导航栏融为一体回网页中的一部分。

我添加了一个位置函数,它似乎工作得很好......但是...... img调整大小在返回到顶部时会延迟,有时会延长一两分钟。边界和填充更改在返回顶部后立即生效,只有img调整大小会延迟。

$(window).scroll(function(){ 
    if ($(this).scrollTop()>0) { 
      $('.logo img').animate({"height": "65px"}, 300); 
      $('#header').css({"border": "1px solid #999", "padding-top": "1px"}); 
    } else { 
      $('.logo img').animate({"height": "114px"}, 300); 
      $('#header').css({"border": "1px solid #fff", "padding-top": "8px"}) 
    } 
}); 

如果我改变两者的IMG功能,CSS()它的工作原理,但我失去动画提供了图像的平滑萎缩。

那里的专家的任何建议?

回答

1

尝试增加.stop()animate函数

$('.logo img').stop().animate({"height": "65px"}, 300); 
+1

或者,背后用'.stop(真,真)' – Terry 2013-04-22 11:08:56

+0

感谢,似乎把戏。我认为必须有一些简单的东西,但是因为我只在一个网站上工作,所以我没有很多jQuery的经验。 – Tom 2013-04-22 11:11:04

+0

stop(true,true)似乎禁用了动画功能,而stop()则不。 – Tom 2013-04-22 11:13:47

相关问题