2012-09-18 6 views
5

Desidero visualizzare un menu fisso nella colonna sinistra del mio sito una volta che l'utente scorre 1000 pixel verso il basso, ma non ho molta esperienza con jQuery/JS. Ho pensato che qualcosa di simile potrebbe funzionare, ma non sta facendo nulla:Modifica classe CSS dopo aver scostato 1000px in basso

HTML:

<div id="menu">[MENU_WILL_GO_HERE]</div> 

STILE:

#menu{display:none;}​ 

JQ:

var fixed = false; 
​$(document).scroll(function() { 
    if($(this).scrollTop() > 100) { 
     if(!fixed) { 
      fixed = true; 
      $('#menu').css({position:'fixed', display:'block'}); 
     } 
     } else { 
      if(fixed) { 
       fixed = false; 
       $('#menu').css({display:'none'}); 
     } 
    } 
});​ 

D:

C'è un motivo per cui questo non funziona? Il codice è un esempio su http://jsfiddle.net/roXon/psvn9/1/ e anche quando copio/incollo quell'esempio esattamente come è in una pagina html vuota, con un collegamento dell'ultima libreria jquery, non funziona ancora come in quella pagina jsfiddle. Cosa potrei trascurare?

risposta

17

tua parentesi sono sbagliate nel tuo esempio, ma a prescindere, è possibile semplificare il codice:

CSS:

#menu { 
    display : none; 
    position : fixed; 
} 

JS:

$(document).scroll(function() { 
    $('#menu').toggle($(this).scrollTop()>1000) 
});​ 

Demo : http://jsfiddle.net/elclanrs/h3qyV/1/

+4

ancora più breve:. '$ ('# Menù') alternare ($ (questo) .scrollTop()> 1000) '. http://jsfiddle.net/elclanrs/h3qyV/1/ – elclanrs

+0

Ah, buon vecchio toggle come ti ho trascurato? Onestamente ho dimenticato che ci voleva un param bool. Buona cattura, amico. – AlienWebguy

+0

Questo fa esattamente quello che voglio ma non riesco a far eseguire lo script su nessuna pagina. Dev'essere in un certo o essere prima o dopo il codice HTML? Non riesco a capire perché non è in esecuzione ed è lo stesso codice esatto dal violino. – taylor

0

Modifica come questo

if($(this).scrollTop() > 1000) 

siete alla ricerca di 1000px di scorrimento, ma sembra 100px a causa di questo, dal codice

Problemi correlati