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 :

Rétrécir un <nav> au scroll down


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Pornstar
    Inscrit en
    Mars 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Pornstar

    Informations forums :
    Inscription : Mars 2018
    Messages : 18
    Par défaut Rétrécir un <nav> au scroll down
    Bonjour,

    je débute le javascript et j'ai 2 soucis avec une fonction.

    J'aimerais lors d'un scrolldown de 50px minimum réduire la hauteur de mon nav en mettant son padding à 0, et lorsque la largeur de la fenêtre est inférieure à 1300px laisser un padding-top de 10px.
    Le code contenu dans le else fonctionne bien si je n'utilise que celui-ci mais lorsque je veux ajuster la fonction pour les largeurs de fenêtre inférieures à 1300px cela ne fonctionne pas et je ne vois pas l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    window.onscroll = function(){
      navScroll()
    };
     
    function navScroll() {
        if (window.innerWidth < 1300) && (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50){
            document.querySelector('nav').style.padding = '10px 0 0 0';
          }
        } 
        else{
            if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50){
                document.querySelector('nav').style.padding = '0';
            }
        }
    Quelqu'un saurait me dire d'où provient l'erreur ?

    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- Ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        if (window.innerWidth < 1300) && (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50){
    ...
          }
        }
    j'ai du mal à croire que ça fonctionne (même partiellement), alors que :
    • il manque des parenthèses
    • il y a 2 } au lieu d'un.

    Ré-écrit avec un peu plus de logique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function navScroll() {
      if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50)
      {
        if ( window.innerWidth < 1300 )
        {
          document.querySelector('nav').style.padding = '10px 0 0 0';
        } else {
          document.querySelector('nav').style.padding = '0';
        }
      } else {
        // ?? (il manque cette condition : menu "normal")
      }
    }
    2- Au lieu de définir le style CSS dans le script JS, une meilleure solution est d'ajouter/supprimer une classe CSS.
    voir :

    On aurait alors simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function navScroll() {
      if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50)
      {
          document.querySelector('nav').classList.add('menutop');
      } else {
          document.querySelector('nav').classList.remove('menutop');
      }
    }
    Le CSS se gère alors dans le fichier CSS(!), avec media-queries (pour la largeur).
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    nav.menutop { padding:10px 0 0 0; }
    @media screen and (min-width:1300px) {
     nav.menutop { padding:0; }
    }
    Dernière modification par Invité ; 28/09/2019 à 11h25.

  3. #3
    Membre averti
    Homme Profil pro
    Pornstar
    Inscrit en
    Mars 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Pornstar

    Informations forums :
    Inscription : Mars 2018
    Messages : 18
    Par défaut
    Merci je prends note de ces conseils avisés sur la manière de styliser via l'ajout/suppression de classes

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

Discussions similaires

  1. Bouton Fixe Scroll Down
    Par surpriz13 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 23/06/2015, 18h46
  2. [AC-2003] scroll down auto dans zone de liste
    Par lbar012001 dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/12/2009, 09h56
  3. [Dojo] Dojo Grid - Ajout de lignes / Scroll Down
    Par Zoummy dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 22/04/2009, 10h24
  4. Scroll down automatique d'une Textbox
    Par OlivierGrenoble dans le forum VBA PowerPoint
    Réponses: 7
    Dernier message: 01/10/2008, 18h11

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