2009-08-30 12 views
0

Wie erkenne ich, ob ein Benutzer mit jQuery nach unten scrollt? Ich möchte ein festes div nur anzeigen, wenn der Browser innerhalb von 300px von der Spitze ist. Wenn der Benutzer die 300px-Markierung nach unten scrollt, sollte er verschwinden. Wenn der Benutzer zurück zum Anfang scrollt, sollte er sich verstecken. Wie mache ich das?Tag nur anzeigen, wenn Seite oben gescrollt wird

+0

Setzen Sie es nicht mehr als 300px vom oberen Rand der Seite. Sie brauchen nicht einmal jQuery :-) – edeverett

+0

Ich möchte es auf den Browser fixiert, so wenn Sie nach unten scrollen, wird es cool aussehen: D –

Antwort

1

einen Scroll-Hörer an das Fenster Attach: http://docs.jquery.com/Events/scroll

dann die scrollTop des Fensters überprüfen: http://docs.jquery.com/CSS

Wenn scrollTop ist kleiner als 300, show() das div, ansonsten hide() es.

+0

Beachten Sie, dass scrollTOP NICHT über Browser hinweg funktioniert. Sie wollen 'window.scrollY' für diesen Test. –

2
var docElem = $(document.documentElement) 
docElem.scroll(function(e) { 
    if(docElem.scrollTop() < 300) { 
     whatever.show(); 
    } else { 
     whatever.hide(); 
    } 
}); 

Sie müssen ein anderes Element verwendet werden können (wie docElem) in verschiedenen Browsern, aber dies sollte in Firefox funktionieren. (Ich habe es nicht getestet)

EDIT: Mehr jQuery

+0

Ich habe etwas von Ihrem Code, danke! –

+0

Warum hast du es dann nicht akzeptiert? – SLaks

1

scrollTop und scrollY aussehen wie sie werden Sie in IE und Firefox starten. Ich bin mir nicht sicher über andere Browser.

0

Gerade die Position scrollTop Fenster überprüfen auf dem Scroll-Ereignis, und vergleichen Sie es mit dem Element offsetTop Position:

$(window).scroll(function(e){ 
    $el = $('.myElement'); 
    if ($(this).scrollTop() > $el.offset().top){ 
    $el.hide(); 
    } else { 
    $el.show(); 
}); 

Führen Sie dieses Beispiel here.

Verwandte Themen