"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je utiliser jQuery pour ajouter et supprimer les classes CSS en fonction de la position de défilement vertical?

Comment puis-je utiliser jQuery pour ajouter et supprimer les classes CSS en fonction de la position de défilement vertical?

Publié le 2025-03-23
Parcourir:229

How Can I Use jQuery to Add and Remove CSS Classes Based on Vertical Scroll Position?

ajout / supprimer la classe avec jQuery basé sur le scroll vertical

Dans ce cas, le but est de supprimer la classe différente de l'élément "en-tête" une fois que l'utilisateur fait défiler une certaine distance, puis d'appliquer une classe différente pour modifier son apparence. Cependant, le code fourni ne fonctionne pas comme prévu en raison de certaines erreurs mineures.

Le code corrigé est le suivant:

$(window).scroll(function() {
    var scroll = $(window).scrollTop();

    // >=, not = 500) {
        // clearHeader, not clearheader - caps H
        $(".clearHeader").addClass("darkHeader");
    }
});

Il y avait trois problèmes principaux:

  1. L'opérateur de comparaison était incorrect; Il doit être> = pour vérifier si la position de défilement est supérieure ou égale à 500.
  2. Le nom de classe pour la suppression a été mal orthographié comme clearheader au lieu de clearheader.
  3. le; manquait à la fin de la déclaration de fonction.

En plus de corriger ces erreurs, considérez ce qui suit:

  • Au lieu de supprimer la classe Clearheader, il vaut mieux y ajouter la classe Darkheader. Cela préserve la position de l'en-tête tout en modifiant son apparence.
  • pour réinitialiser la classe lorsque vous faites défiler vers le haut, utilisez une deuxième condition comme vu ci-dessous:
if (scroll >= 500) {
    $(".clearHeader").addClass("darkHeader");
} else {
    $(".clearHeader").removeClass("darkHeader");
}

Enfin, la mise en cache de l'objet jQuery pour l'en-tête peut améliorer les performances, surtout si vous prévoyez de modifier sa classe plusieurs fois:

var header = $(".clearHeader");
$(window).scroll(function() {
    var scroll = $(window).scrollTop();

    if (scroll >= 500) {
        header.removeClass('clearHeader').addClass("darkHeader");
    } else {
        header.removeClass("darkHeader").addClass('clearHeader');
    }
});

En abordant ces problèmes, vous pouvez maintenant ajouter et supprimer efficacement les classes de l'en-tête en fonction de la position de défilement vertical de l'utilisateur.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3