Changement de couleur de fond au scroll

Partager
Changement de couleur de fond au scroll

Cet effet permet de modifier la couleur de fond du <body> lorsque l’utilisateur arrive sur différentes sections d’une page — parfait pour créer un storytelling fluide et immersif.

Ajouter les classes et attributs dans Elementor

Étape 1 : Ajouter la classe .panel

Pour chaque section où tu veux changer la couleur de fond, ainsi que celles qui la précèdent et la suivent :

  1. Sélectionne ta section dans Elementor
  2. Va dans Avancé → Classes CSS
  3. Ajoute : panel

Étape 2 : Définir la couleur via un attribut

Toujours dans ta section :

  1. Va dans Avancé → Attributs
  2. Ajoute un nouvel attribut : Clé : data-color Valeur : gray ou blue ou purple

Exemple : data-color|blue appliquera la classe .color-blue au body quand la section est visible.

Ajouter les styles de couleurs dans ton site

Va dans Apparence → Personnaliser → CSS Additionnel, ou dans Elementor → Code personnalisé → CSS global.

Ajoute ce code :

body {
    background-color: #101012;
    transition: background-color 1s ease;
}

.color-blue {
    background-color: #7dc4ea!important;
}

.color-gray {
    background-color: #222225!important;
}

.color-purple {
    background-color: #7300FF!important;
}

Tu peux créer autant de couleurs que tu veux :
Déclare une .color-xxx puis utilise data-color|xxx dans ta section.

Ajouter le script jQuery dans Elementor

  1. Va dans Elementor → Code personnalisé
  2. Clique sur Ajouter un code
  3. Choisis position Footer – Fin du </body>
  4. Colle ce code :
<script>
jQuery(function($){
    $(window).scroll(function() {

        var $window = $(window),
            $body = $('body'),
            $panel = $('.panel'); // Chaque section à détecter
        
        var scroll = $window.scrollTop() + ($window.height() / 2);

        $panel.each(function () {
            var $this = $(this);

            // Vérifie si la section est au milieu de l'écran
            if ($this.position().top <= scroll && $this.position().top + $this.height() > scroll) {

                // Supprime toutes les classes color-*
                $body.removeClass(function (index, css) {
                    return (css.match(/(^|\s)color-\S+/g) || []).join(' ');
                });

                // Ajoute la couleur liée à la section active
                $body.addClass('color-' + $(this).data('color'));
            }
        });

    }).scroll(); // Exécute au chargement
});
</script>

Comment cela fonctionne ?

  • Chaque section avec .panel est surveillée.
  • Quand le scroll arrive au milieu de cette section, le script :
    • retire toutes les classes actuelles color-* du body
    • ajoute color-gray, color-purple, etc.
  • Le CSS change alors la couleur du background du site.

Grâce à la transition :

transition: background-color 1s ease;

La couleur change en douceur, façon storytelling.

Astuces & Personnalisation

Ajouter plus de couleurs

Déclare une nouvelle classe :

.color-green {
    background-color: #1abc9c!important;
}

Puis dans Elementor :

data-color|green

Rendre le changement plus rapide ou plus lent

Modifie dans body :

transition: background-color 0.4s ease;

Changer la zone de détection (milieu de section)

Dans le JS :

var scroll = $window.scrollTop() + ($window.height() / 2);

Remplace / 2 par :

  • / 3 → déclenche plus tôt
  • / 1.5 → déclenche plus tard
Categorie
Compatible
WordPress, Elementor
Mis à jour
14 Nov 2025

Créer avec Elementor

Hébergez, créez et développez le site web de vos rêves avec la première plateforme pour WordPress.

Inspirez vos projets Elementor avec 1 animation par semaine.

Merci de ton inscription !

Créer avec Elementor

Hébergez, créez et développez le site web de vos rêves avec la première plateforme pour WordPress.