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 :

Fixer un menu en haut de page lors du scroll


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut Fixer un menu en haut de page lors du scroll
    Bonjour à tous,

    J'ai souvent utilisé les scripts (qu'on trouve aisément sur le net) permettant de bloquer un div/menu au scroll. Çela a toujours fonctionné.
    Mais sur ma page actuelle, impossible de fixer le div #menu. J'ai vu et revu (changer) les CSS, idem pour le HTML, changer de script. Rien à faire.
    Mon dernier espoir (avant développez.com ) était "sticky-master". Idem.


    Les CSS :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        #menu {
          background: #bada55;
          color: white;
          font-family: Droid Sans;
          font-size: 18px;
          line-height: 1.6em;
          font-weight: bold;
          text-align: center;
          padding: 10px;
          text-shadow: 0 1px 1px rgba(0,0,0,.2);
          width:100%;
          box-sizing:border-box;
        }

    Le HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    		<header class="header">
    <h1>Titre<span>sous-titre</span></h1>
     
            <div id="menu">
        <ul>
            <li><a href="../index.html">Intro</a></li>
            <li><a href="../europeens.html">Européens</a></li>
            <li><a href="../americains.html">Américains</a></li>
            <li><a href="../dedicaces.html">Dédicaces</a></li>
            <li><a href="../presse.html">Presse</a></li>
            <li><a href="../divers.html">Divers</a></li>
        </ul></div></header>

    Et le JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	<script type="text/javascript" src="jquery.sticky.js"></script>
    	<script>
        $(window).load(function(){
          $("#menu").sticky({ topSpacing: 0 });
        });
      </script>
    Merci pour votre aide et bonne journée,
    dh

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

    as-tu vérifier que tu as bien initialisé jQuery, ainsi que le fichier jquery.sticky.js ?

    qu'on trouve ici :

  3. #3
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut
    Bonjour jreaux62,

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script src="../js/modernizr-custom.js"></script>
    <script src="../js/imagesloaded.pkgd.min.js"></script>
    <script src="../js/masonry.pkgd.min.js"></script>
    <script src="../js/classie.js"></script>
    <script src="../js/main.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="jquery.sticky.js"></script>

    Puis les scripts avant </body>.

    Y a-t-il un conflit possible ?

    PS : "jquery.sticky.js" est bien au premier niveau.

    Merci pour ton aide,
    dh

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par dhillig Voir le message
    .../jquery/1.4.2/jquery.min.js
    On en est à jQuery v2.1.3 !

    Mais bon, ça ne semble pas être le problème ici : http://codepen.io/jreaux62/pen/LGaxdd

    Un conflit, peut-être. Mais sans accès à une page en ligne...


    N.B. Pourquoi ne pas avoir mis le fichier jquery.sticky.js avec les autres, dans le dossier "js" ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut
    Ça ne fonctionne pas non plus
    J'avais bien mis "jquery.sticky.js" dans le dossier js, mais comme ça ne fonctionnait pas, je l'ai mis à la source comme dans le démo (au cas où ce serait un prob de "chemin").

  6. #6
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut
    Ras-le-bol, j'ai décidé de mettre la page en ligne pour vous montrer, et là... MIRACLE, ça fonctionne !!!

    C'est la première fois que je n'arrive pas à prévisualiser cet effet (div qui se fixe à top:0px). Des heures à chercher pour rien.
    Quelqu'un aurait-il une idée du pourquoi ?

    Bonne soirée et merci à vous,
    dh

  7. #7
    Invité
    Invité(e)
    Par défaut
    ...sais pas...
    quelle est la page en ligne ?

  8. #8
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut
    Bonjour jreaux62,
    La page en question (la même que celle avec le prob de zoom) :
    http://extraboldital.com/divers.html
    Bonne journée,
    dh

  9. #9
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut "ça mâche pô" (Garcimore. Antenne 2, 1981)
    Bonjour à tous,
    Je pensais avoir trouvé la solution, mais c'était trop beau
    Imposible de fixer ce #menu. !!! HELPPPPPPPPPPP !!!!!!
    Je vous joins une page en cours de réalisation (désolé pour les vignettes non optimisées ).
    http://extraboldital.com/dedicaces.html
    HELLLLLLLPPPPPPPPPPPPPPPP !!!!!!
    ça fait des jours que je cherche
    Merci pour votre aide et bon week-end,
    dh

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="menu-sticky-wrapper" class="sticky-wrapper" style="height: 18px;">
      <div id="menu-sticky-wrapper" class="sticky-wrapper" style="height: 18px;">
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        $(window).load(function(){
          $("#menu").sticky({ topSpacing: 0 });
        });
    "Y'a comme un défaut !"
    Fernand Raynaud

    [€] Oups ! pas vu le <div id="menu"> à l'intérieur...

    Donc, l'erreur est ... tailleur*.
    * du même Fernand Raynaud

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="Templates/jquery.sticky.js" type="text/javascript">
    page non trouvée...

  11. #11
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut
    je ne comprends pas

  12. #12
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut
    Bonsoir Jérôme,
    Peux-tu m'en dire davantage sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="menu-sticky-wrapper" class="sticky-wrapper" style="height: 18px;">
    ? Je bloque
    Merci et bonne soirée,
    dh

  13. #13
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    Peux-tu m'en dire davantage sur :
    $("#menu") correspond à la sélection d'un élément dont l'ID est 'menu'.

    Donc pour sélectionner l'élément <div id="menu-sticky-wrapper" on doit écrire .....à compléter avec le bon code

  14. #14
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut
    Bonsoir NoSmoking,
    Merci pour ton aide. Je vais faire des tests demain.
    Cette page m'en fait voir de toutes les couleurs (voir l'autre discussion non résolue
    Bonne soirée,
    dh

  15. #15
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut
    re_Bonsoir NoSmoking,
    Je tente de comprendre... en vain
    J'ai remis la page en ligne, je pense avoir fait n'importe quoi
    http://extraboldital.com/dedicaces.html
    Merci pour ton aide et bonne soirée,
    dh

  16. #16
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 32
    Par défaut
    Je regarde ta page en ligne et un truc que tu ne sembles pas avoir changé/compris :
    Dans ton script tu as écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       $(window).load(function(){
          $("#menu").sticky({ topSpacing: 0 });
        });
    Or, ton menu a pour id="menu-sticky-wrapper" ( qui est donc différent de #menu ), commence donc par faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       $(window).load(function(){
          $("#menu-sticky-wrapper").sticky({ topSpacing: 0 });
        });

  17. #17
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut
    Bonjour zadoner33 et merci pour ta réponse
    D'un seul coup, la réponse de NoSmoking me semble claire (elle l'était) et la réponse évidente.
    Malheureusement, comme tu peux le voir en ligne, le menu reste scrollable
    Ne pouvant mettre de flèche "retour en haut" (voir mon autre discussion; la barre des menus fixe n'est pas un caprice, juste indispensable dans mon cas
    Merci pour votre aide et bon après-midi,
    dh

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

    1/ Après avoir corrigé les erreurs de scripts... :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <div id="menu-sticky-wrapper" class="sticky-wrapper">
    ...
        </div>
    Code jevascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        $(window).load(function(){
          $("#menu-sticky-wrapper").sticky({ topSpacing: 0 });
        });
    2/ Et tu as DEUX FOIS le même script !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script src="js/jquery.sticky"></script> 
    ...
    <script type="text/javascript" src="js/jquery.sticky.js"></script>
    Il faut en supprimer un.


    3/... j'ai fini par trouver la cause du dysfonctionnement, mais pas l'explication.
    Ca vient... du CSS !

    Plus précisément, de cette ligne :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    html, body {
    ...
    	overflow-x: hidden;
    ...
    }
    supprime cet overflow, et le menu devient sticky...



    N.B. Autre ligne qui me semble douteuse :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    @import url("file:///Sans titre/Users/davehillig/webfonts/holtwoodonesc/stylesheet.css");

  19. #19
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut Rhôôôôôô LA VACHE !!!
    Bonsoir MONSIEUR jreaux62,

    Pas mal de corrections avaient déjà été effectuées (MERCI aux membres )
    Pour ce qui est du "holtwoodone", c'est la police initiale que j'ai oubliée de virer (
    utilisée, j'aurais vu le prob je pense. )
    Le script qui doublonne, vu aussi et corrigé précédemment, mais j'ai du reprendre un mauvais template (je les duplique très souvent) .
    Mais alors là, pour les CSS : BRAVO
    Ça me rappelle un problème d'overflow sur une de mes pages, un truc de dingue; tu avais trouvé une ligne a suppprimer dans les CSS de base de Fancybox... TROP FORT !!!
    Merci pour tout et bonne soirée
    dh
    NB : et merci d'avoir jeté un œil sur le code

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

Discussions similaires

  1. [jonas]eclipse ne trouve pas le plugin
    Par Stessy dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 17/07/2007, 11h43
  2. je ne trouve pas la bonne syntaxe
    Par poelvo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/08/2003, 01h30
  3. [TP]trouve pas le graph.tpu
    Par kaygee dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 13/06/2003, 12h49
  4. [Kylix] [cgi] ne trouve pas libsqlmy.so.1 !
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 04/07/2002, 15h15

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