Maison >interface Web >tutoriel CSS >Comment puis-je modifier dynamiquement la classe d'un en-tête en fonction de la position de défilement vertical à l'aide de jQuery ?

Comment puis-je modifier dynamiquement la classe d'un en-tête en fonction de la position de défilement vertical à l'aide de jQuery ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-03 19:50:14477parcourir

How Can I Dynamically Change a Header's Class Based on Vertical Scroll Position Using jQuery?

Manipulation de classe basée sur JQuery avec défilement vertical

Problème :

Vous souhaitez modifier la classe d'un élément d'en-tête lorsqu'un utilisateur fait défiler, modifiant son apparence. Cependant, votre approche actuelle ne fonctionne pas comme prévu.

Solution :

<br>$(window).scroll(function() {</p>
<pre class="brush:php;toolbar:false">var scroll = $(window).scrollTop();

// Update using correct operator (>=, not <=)
if (scroll >= 500) {
    // Use correct class name (clearHeader, not clearheader)
    $(".clearHeader").addClass("darkHeader");
}

});

Syntaxe correcte :

Assurer l'utilisation correcte du > = L'opérateur et le nom de la classe clearHeader sont cruciaux. De plus, ne supprimez pas la classe clearHeader, car elle supprime le positionnement fixe et sa capacité à être à nouveau sélectionnée.

Réinitialisation des classes :

Pour réinitialiser la modification de la classe lorsque en faisant défiler vers le haut, utilisez ce code :

<br>$(window).scroll(function() {</p>
<pre class="brush:php;toolbar:false">var scroll = $(window).scrollTop();

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

});

Optimisation des performances :

Pour une meilleure efficacité, mettez en cache l'objet jQuery de l'en-tête :

<br>$(function() {</p>
<pre class="brush:php;toolbar:false">var header = $(".clearHeader");
$(window).scroll(function() {
    var scroll = $(window).scrollTop();

    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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn