2011-07-15 11 views
9

Gelişmekte olduğum yeni bir site için kullanıcı aşağı doğru kaydırıldığında gezinme menüsünü daraltmayı çok isterim. IBM yerinde görebileceğiniz ne benzerAşağı kaydırırken gezinme menüsü nasıl küçültülür?

şey: http://www.ibm.com/us/en/

herhangi jQuery uygulaması bulmak veya etrafında öğretici olamazdı

Yani eğer (ben yanlış anahtar kelimeleri arıyor olmalı eminim) Birisi beni doğru yönde gösterebilir, beni gerçekten mutlu eder.

Şimdiden teşekkürler!

cevap

37

gittiğiniz adam:

$(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); 
    } 
    }); 
}); 

Demo: http://jsfiddle.net/seancannon/npdqa9ua/ Bu küçülür ve kullanıcı kaydırma gezinti çubuğu büyür

+3

Değerli anonim seçmen: açıklamak ister misiniz? Bu nasıl yardımcı oldu? – AlienWebguy

+0

mükemmel çözüm, mükemmel bir yardım +1 –

+0

teşekkürler! –

4

Yaptığınız şey pencerenin kaydırma değerini kontrol etmektir. Sıfırdan büyükse, kullanıcı aşağı kaydırılmış. Öyleyse, afişi gizleyin (veya küçültün ya da her neyse). En tepeye geri dönüp tekrar gösterseler.

http://jsfiddle.net/rxXkE/

$(window).scroll(function() { 
console.log($(window).scrollTop()); 
if ($(window).scrollTop() > 0) { 
    $(".banner").slideUp(); 
} 
else { 
    $(".banner").slideDown(); 
} 

}); İşte

+0

-1 Bu, OP'nin örneğini taklit etmez. Bu, navunu tamamen gizler, bu da herhangi bir canlandırma yapmadan sadece kaydırma yapabildiğinizden ve ekranın gizlenmesini sağlayamayacağından anlamsızdır. – AlienWebguy

+1

@AlienWebguy Bu sadece bir örnektir, metne bakınız 'Eğer öyleyse pankartı gizleyin (veya daraltın ya da her neyse). – jeroen

+0

Cidden bu nasıldı? Bu, $ (window) .unload (function() {$ (this) .close();} ' – AlienWebguy

İlgili konular