Cambiare classi solo scroll up

lazlo

Utente Attivo
24 Gen 2018
20
0
1
Salve ragazzi, tempo fa ho sviluppato un sito in cui mi si chiedeva di modificare la barra del menù scrollando con il mouse o con la barra laterale del browser.
Per farlo, usai un codice jQuery che ho trovato in rete:
Codice:
jQuery(window).scroll(function() {   
    var scroll = jQuery(window).scrollTop();
     //console.log(scroll);
    if (scroll >= 50) {
        //console.log('a');
        jQuery("#id-elemento").addClass("classe-da-aggiungere");
    } else {
        //console.log('a');
        jQuery("#id-elemento").removeClass("classe-da-rimuovere");
    }
});
In pratica, come potete vedere, con questo script jQuery, scrollando di 50px e oltre, all'elemento che ha un determinato id viene aggiunta una classe; viceversa, tornando indietro con lo scroll sotto i 50px dal top della pagina, quella classe aggiunta precedentemente viene tolta.

Il codice funziona bene, però ora sto sviluppando un altro sito dove quello che vorrei fare è leggermente diverso:
in pratica, senza dilungarmi con le spiegazioni, ora l'elemento che ha un certo id ha già anche una classe assegnata, e quello che vorrei fare io è che quando si scrolla verso il basso, quindi si scende con la pagina, non deve succedere nulla. Quando si scrolla verso l'alto, invece, arrivati al top della pagina, deve essere rimossa la classe che l'elemento già ha.

Non so se sono riuscito a spiegarmi bene.
Ora, si può in qualche modo adattare lo script postato sopra, oppure esiste uno script che mi permetta di eseguire l'azione soltanto allo scroll up?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, se non ho capito male ti basta controllare quando lo scroll arriva a 0
Codice:
jQuery(window).scroll(function () {
                var scroll = jQuery(window).scrollTop();
                if (scroll == 0) {
                    jQuery("#id-elemento").removeClass("classe-da-rimuovere");
                }
            });
 

lazlo

Utente Attivo
24 Gen 2018
20
0
1
Hai capito benissimo. È proprio quello che cercavo, funziona benissimo.
Grazie mille.