Плагин jquery.waypoints позволяет выполнять js-код когда html-блок достигнет нужного положения на странице.
Пример кода для плагина jquery.waypoints:
jQuery(document).ready(function(jQuery) {
var nav_container = jQuery(".nav-container");
var nav = jQuery('nav');
var top_spacing = 0;
var waypoint_offset = 50;
jQuery('nav').waypoint(
{
handler: function(direction) {
/*
nav.toggleClass('sticky', direction=='down');
*/
if (direction == 'down'){
nav_container.css({ 'height':nav.outerHeight() });
nav.addClass("sticky")
.stop()
.css("top", -nav.outerHeight())
.animate({"top" : top_spacing});
}
else{
nav_container.css({ 'height':'auto' });
nav.removeClass("sticky")
.stop()
.css("top", nav.outerHeight() + waypoint_offset)
.animate({"top" : ""});
//alert(direction);
}
}
, offset: function() {return -(nav.outerHeight() + waypoint_offset);}
}
);
});
CSS:
.sticky {
position: fixed;
top: 0;
right:0;
left:0;
}
HTML:
<div class="nav-container"> <nav class="navbar navbar-default navbar-static-top"> </nav> </div>
При прокрутке страницы вниз, блок навигации уходит вверх за пределы окна, а затем плавно возвращается к верхней части окна.