L'objectif est d'implémenter une fonctionnalité dans laquelle un élément d'en-tête modifie son style en fonction de la position de défilement vertical de l'utilisateur. Nous souhaitons supprimer une classe et en ajouter une autre pour modifier l'apparence de l'en-tête lorsque l'utilisateur fait défiler vers le bas au-delà d'un certain point.
Le code fourni tente d'utiliser la fonction .scroll() de jQuery pour déclencher un événement lorsque la fenêtre défile. Cependant, il y a quelques erreurs dans l'implémentation.
$(window).scroll(function() { var scroll = $(window).scrollTop(); if (scroll <= 500) { $(".clearheader").removeClass("clearHeader").addClass("darkHeader"); } }
$(window).scroll(function() { var scroll = $(window).scrollTop(); if (scroll >= 500) { $(".clearHeader").removeClass("clearHeader").addClass("darkHeader"); } });
Au lieu de supprimer et d'ajouter des classes, il est recommandé de créer une nouvelle classe CSS qui remplace le style de les classes existantes. Cette méthode permet un meilleur contrôle de l'apparence de l'en-tête.
Pour réinitialiser le style de l'en-tête lorsque l'utilisateur fait défiler vers le haut, ajoutez la condition suivante au code :
if (scroll >= 500) { $(".clearHeader").removeClass('clearHeader').addClass("darkHeader"); } else { $(".clearHeader").removeClass("darkHeader").addClass('clearHeader'); }
La mise en cache de l'objet jQuery pour l'élément d'en-tête offre une meilleure performance :
$(function() { var header = $(".header"); $(window).scroll(function() { if (scroll >= 500) { header.removeClass('clearHeader').addClass("darkHeader"); } else { header.removeClass("darkHeader").addClass('clearHeader'); } }); });
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!