對於我正在開發的新網站,我希望在用戶滾動時縮小導航菜單。類似於您可以在IBM網站上看到如何縮小導航菜單時向下滾動?
我找不到任何jQuery的實現或教程左右(我相信我一定要尋找的錯誤的關鍵詞)
所以,如果有人可以將我指向正確的方向,這會讓我真的很開心。
在此先感謝!
對於我正在開發的新網站,我希望在用戶滾動時縮小導航菜單。類似於您可以在IBM網站上看到如何縮小導航菜單時向下滾動?
我找不到任何jQuery的實現或教程左右(我相信我一定要尋找的錯誤的關鍵詞)
所以,如果有人可以將我指向正確的方向,這會讓我真的很開心。
在此先感謝!
在這裏你去人:
$(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();
}
});
-1這並不模仿OP的例子。這完全隱藏了導航,這是毫無意義的,因爲您可以在不執行任何動畫的情況下進行滾動,導航將隱藏在屏幕之外。 – AlienWebguy
@AlienWebguy這只是一個例子,請參閱文字'如果是這樣,然後隱藏橫幅(或縮小或其他)'。 – jeroen
認真爲什麼這會得到upvotes?這與'$(window).unload(function(){$(this).close();}'一樣毫無意義;} – AlienWebguy
這種收縮和增長的導航欄當用戶滾動。創建此關閉http://www.kriesi.at/themes/enfold/導航欄。我創建的版本幾乎相同。 https://github.com/Jlshulman/Elastic-Bar
親愛的匿名低調選民:謹慎解釋?這是如何無益的? – AlienWebguy
很好的解決方案+1 –
完美,非常有幫助,謝謝! –