Как уменьшить меню навигации при прокрутке вниз?
для нового сайта, который я разрабатываю, я хотел бы уменьшить меню навигации, когда пользователь прокручивает вниз.
Что-то похожее на то, что вы можете увидеть на сайте IBM:http://www.ibm.com/us/en/
Я не мог найти реализацию jQuery или учебник вокруг (я уверен, что я должен искать неправильные ключевые слова)
поэтому, если кто-то может указать мне в правильном направлении, это сделает меня действительно счастливым.
спасибо вперед!
3 ответов
вот вы идете человек:
$(function(){
var navStatesInPixelHeight = [40,100];
var changeNavState = function(nav, newStateIndex) {
nav.data('state', newStateIndex).stop().animate({
height : navStatesInPixelHeight[newStateIndex] + 'px'
}, 600);
};
var boolToStateIndex = function(bool) {
return bool * 1;
};
var maybeChangeNavState = function(nav, condState) {
var navState = nav.data('state');
if (navState === condState) {
changeNavState(nav, boolToStateIndex(!navState));
}
};
$('#header_nav').data('state', 1);
$(window).scroll(function(){
var $nav = $('#header_nav');
if ($(document).scrollTop() > 0) {
maybeChangeNavState($nav, 1);
} else {
maybeChangeNavState($nav, 0);
}
});
});
что вы делаете, это проверить значение прокрутки окна. Если он больше нуля, то пользователь прокрутил вниз. Если да, то спрячьте баннер (или уменьшите или что-то еще). Если они вернутся на вершину, то изменят ее.
$(window).scroll(function () {
console.log($(window).scrollTop());
if ($(window).scrollTop() > 0) {
$(".banner").slideUp();
}
else {
$(".banner").slideDown();
}
});
Это сжимает и увеличивает панель навигации по мере прокрутки пользователя. Создал это из http://www.kriesi.at/themes/enfold/ панель навигации. Версия, которую я создал, работает почти так же. https://github.com/Jlshulman/Elastic-Bar