IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Détecter le scroll vertical


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    725
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 725
    Par défaut Détecter le scroll vertical
    Bonjour,

    Pour un effet sticky je cherche un code javascript le plus léger possible pour détecter le scroll vertical et appliquer alors un changement de position à certains éléments et de display à d'autres.

    Je précise que je connais très peu javascript.

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    il te faut mettre un « écouteur » sur l'événement onscroll de ton document et agir en conséquence.

    GlobalEventHandlers.onscroll.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    725
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 725
    Par défaut
    Bonjour,

    Merci de ta réponse mais je me suis mal exprimé.

    Je veux détecter le scrool vertical et au-delà d'une certaine valeur, par exemple 200 pixels, appliquer des changements CSS à divers éléments de la page.

    Dans ton lien je ne vois pas comment faire pour :

    if (scrool_vertical > 200px)

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    725
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 725
    Par défaut
    Bonjour,

    Merci.

    je vais étudier cela.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    725
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 725
    Par défaut
    Bonjour,

    Je ne suis pas sûr que scrollTop soit adapté et je ne sais pas comment le mettre en place.

    Par contre il me semble que ma question n'est pas originale.

    Palier les limites de Position sticky en CSS et avoir un effet sticky via javascript, il me semble que des dizaines de sites le font déjà.

    J'aimerais juste trouver le morceau de code javascript que je sais pas programmer, il me semble que c'est répandu.

    if (scrool_vertical > 200px)
    Je passe un élément de "position : absolute" à "position : fixed"
    Je passe un autre élément en "display : none"

  7. #7
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Cela fait 3 mois que je me suis mis au JavaScript, j'avais copier/coller/modifier ce bout de code pour apprendre.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <!DOCTYPE html>
    <html>
    <head>
    	<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <style>
    .test1 {
        background-color: lightblue;
    }
    .test2 {
        background-color: yellow;
    }
    .test3 {
        background-color: red;
    }
    </style>
    </head>
    <body style="height:1500px; width:1800px">
     
    <p>Faites défiler cette page de haut en bas ainsi que de droite à gauche</p>
     
    <div id="myP" style="position:fixed">
    <p id="mesures">.</p>
    <p> Lorsque vous avez parcouru 50 pixels du haut de cette page, ajouter la classe "test" (Couleur de fond jaune) a ce paragraphe.
    	<br> Faites défiler vers le haut pour supprimer la classe.
    </p>
    </div>
    <script>
    window.onscroll = function() {myFunction()};
     
    function myFunction() {
        var x = document.body.scrollTop || document.documentElement.scrollTop;
            if (x > 150) 
                    {document.getElementById("myP").className = "test1";}
                    else if (x > 100) {document.getElementById("myP").className = "test2";} 
                    else if (x > 50) {document.getElementById("myP").className = "test3"; 
                    } else {
            document.getElementById("myP").className = "";
        }
        var y = document.body.scrollLeft || document.documentElement.scrollLeft;
            document.getElementById("mesures").innerHTML = "scrollLeft = " + y + "px            scrollTop = " +  x + "px" ;
            
    }
    </script>
     
    </body>
    </html>
    en espérant que cela te rendra service.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    725
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 725
    Par défaut
    Merci, cela semble intéressant.
    je vais travailler sur ma page de test.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détecter le scroll dans la TStringGrid
    Par Delphi-ne dans le forum Delphi
    Réponses: 1
    Dernier message: 31/10/2006, 11h03
  2. [winAPI] Notification de scroll vertical de listbox ?
    Par kidpaddle2 dans le forum Windows
    Réponses: 3
    Dernier message: 19/07/2006, 15h59
  3. [winAPI] Scrolling vertical listbox ?
    Par kidpaddle2 dans le forum Windows
    Réponses: 2
    Dernier message: 22/05/2006, 18h57
  4. [IFrame] Avoir seulement un scroll vertical
    Par Etanne dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 19/09/2005, 11h33
  5. scrolling vertical et horizontal
    Par myriam dans le forum MFC
    Réponses: 2
    Dernier message: 24/01/2003, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo