2013-05-13 3 views
1

У меня есть плавающее меню, которое я хочу затухать, когда вы начинаете прокручивать страницу вниз, а затем исчезаете, когда вернетесь наверху страницы. У меня есть работа без выцветания, но я не уверен, как добавить затухания. Любая помощь оценивается. Благодарю.Fade in/out div scrollTop

$(document).scroll(function() { 
    $('#floatingnav').toggle($(this).scrollTop()>250) 
}); 

CSS

#floatingnav { 
    position:fixed; 
    display:none; 
} 
+1

доля вашей скрипку ... – PraJen

ответ

0

Вы можете использовать fadeToggle с некоторой длительностью в качестве аргумента (только упаковывают вы хотите) вместо плоскости toggle.That будет делать свою работу.

$(document).scroll(function() { 
    $('#floatingnav').fadeToggle($(this).scrollTop()>250) 
}); 
0

Вы можете попробовать это, чтобы проверить, если div достиг верхней

$(window).scroll(function() { 
    var d = $('div'); // this is your fixed div 
    if (d.offset().top > 250) { 
     d.fadeIn(); 
    } else { 
     d.stop().fadeOut(); 
    } 
}); 

TEST FIDDLE

+0

Спасибо, я попытался выше, однако код исчезает после прокрутки, но он остается там, когда вы прокручиваете назад вверх. Я не использую margin-top класса css, но bottom: 40px; и т. д. Это связано с этим? – boontoony

+0

он, вероятно, не достигает менее 250 пикселей сверху. вам может потребоваться рассчитать его в противном случае. или использовать плагин [waypoint] (http://imakewebthings.com/jquery-waypoints/#about) – Spokey

0
$(window).bind("scroll", function() { 
    if ($(this).scrollTop() > 250) { 
     $("#floatingnav").fadeIn(); 
    } else { 
     $("#floatingnav").stop().fadeOut(); 
    } 
});