$(window).scroll(function () {
if ($(window).scrollTop() > 100) {
$('.nav').css('margin-top', '5px');
$('.sep').css('margin-top', '20px');
$('.logo').fadeOut(500);
$('#navWrap').animate({
height: '62px'
}, 500, function() {
});
}
}
);
$(window).scroll(function () {
if ($(window).scrollTop() < 100) {
$('.nav').css('margin-top', '23px');
$('.sep').css('margin-top', '40px');
$('.logo').fadeIn(500);
}
}
);
我有这个代码,当你向下滚动时,我的导航动画高度从100px到62px,我试图让它在再次到达顶部时动画回到100px,但似乎无法这样做
我通常在第二个窗口.scroll函数中再次包含.animate但是没有做任何事情。
答案 0 :(得分:1)
你很亲密,只需要做一些修改。
stop()
,或向下滚动然后向上将导致每个新动画进入队列,导航栏将继续打开和关闭。$(window).scroll
...你有一个独家条件。要么你从顶部超过或低于100,只有你还没有这样做,你才能执行CSS更改和动画。将它放入同一个功能可以更容易管理。
var navsize = "large";
$(window).scroll(function () {
if ($(window).scrollTop() > 100) {
if (navsize == "large")
{
navsize = "small";
$('.nav').css('margin-top', '5px');
$('.sep').css('margin-top', '20px');
$('.logo').stop().fadeOut(500);
$('#navWrap').stop().animate({
height: '62px'
}, 500);
}
}
else
{
if (navsize == "small")
{
navsize = "large";
$('.nav').css('margin-top', '23px');
$('.sep').css('margin-top', '40px');
$('.logo').stop().fadeIn(500);
$('#navWrap').stop().animate({
height: '100px'
}, 500);
}
}
});