Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Sticky navbar] probleme avec l'affichage

    10 novembre 2018 à 13:17:57

    Bonjour, j'ai un soucis avec le Javascript j'ai crée un script avec le tuto de w3school comment faire un sticky navbar et j'ai un problème le sticky navbar cache le header(photos ci-joint) après le scroll,pouvez vous m'aider svp je vous passe le code php,css et js. l'effet sticky se fait avec css et js regarder dans le css, les derniers codes du css c'est le code pour le sticky.
    <!DOCTYPE html>
    <html>
       <head>
          <meta charset="utf-8" />
          <title>Test #1 - Le Site Web</title>
          <link rel="stylesheet" href="/a/CSS/style.css"/>
          <link href="https://fonts.googleapis.com/css?family=Oswald" rel="stylesheet">
          <link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">
          <link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylesheet">
          <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
    
       </head>
    <body>
    
    <div id ="header-navbar">
        <header>
    <h1>Test #1</h1>   
     </header>
     
                
    <nav>
    <ul>   
    <li><a href="/a/PHP/test.php">Accueil</a></li>
    <li><a href="/a/index.html">Qui suis-je ?</a></li>
    <li><a href="/a/PHP/index.php">Livre d'or</a></li>
    </ul>
    </nav>
    
    </div>    
        
    <div class="main_content">
        <section>
     <aside>
    <h1>Objectif du site</h1>
    <p>Ce site a pour bute unique d'etre un exemple de site fait par moi, un projet de portfolio </p>
     </aside>
        <article>
    <h1>Bienvenue sur mon site de stockage de donnée</h1>
    <p>Sur ce site je stockerai des données superficiels qui serviront d'exemple,<br>
    comme c'est mon premier site sur mon nouveau PC j'ai vais mettre tous mes connaissances<br> 
    sur ce site pour garder en mémoire mon niveau et pouvoir montrer mon "level" aux autres.</p>
        </article>
            
        </section>
    
        <?php
    try
    {
    $bdd = new PDO("mysql:host=localhost;dbname=test;charset=utf8",
    "root", "", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    }
     
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
    
    $reponse = $bdd->query('SELECT * FROM jeux_video');
    
    
    // On affiche chaque entrée une à une
    while ($donnees = $reponse->fetch())
    {
    ?>
        <p>
        <strong>Jeu</strong> : <?php echo $donnees['nom']; ?><br />
        Le possesseur de ce jeu est : <?php echo $donnees['possesseur']; ?>, et il le vend à <?php echo $donnees['prix']; ?> euros !<br />
        Ce jeu fonctionne sur <?php echo $donnees['console']; ?> et on peut y jouer à <?php echo $donnees['nbre_joueurs_max']; ?> au maximum<br />
        <?php echo $donnees['possesseur']; ?> a laissé ces commentaires sur <?php echo $donnees['nom']; ?> : <em><?php echo $donnees['commentaires']; ?></em>
       </p>
    <?php
    }
    
    
        
    $reponse->closeCursor(); // Termine le traitement de la requête
    
    ?>
    
    </div>    
        
        
    <footer>
    <p>Copyright 2018 Reezy - Tous droits réservés <br />
    <br /> <a class="contact" href="mailto:samynantoy@gmail.com">Me contacter</a></p>
    <a class="sitemap" href="\a\Sitemap.xml">Site Map</a>    
    </footer>
    
    
    <script src="/a/Scripts/main.js"></script>
        
        </body>
    </html>
    
    
    
    
    
    .main_content,section
    {
        color: black;
    }
    
    .contact
    {
        color: white;
    }
    
    footer
    {
        color: white;
    }
    
    p,footer,nav
    {
      font-family: 'Roboto', sans-serif;  
    }
    
    header,h1
    {
     font-family: 'Lobster', cursive;   
    }
    
    header
    {
        color: black;
        background-color: white;
        margin-right: -8px;
        margin-left: -8px;
        margin-top: -25px;
        margin-bottom: 100px;
        padding-bottom: 3px;
    }
    
    html
    { 
    background-color: #330033;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400' viewBox='0 0 800 800'%3E%3Cg fill='none' stroke='%23404' stroke-width='1'%3E%3Cpath d='M769 229L1037 260.9M927 880L731 737 520 660 309 538 40 599 295 764 126.5 879.5 40 599-197 493 102 382-31 229 126.5 79.5-69-63'/%3E%3Cpath d='M-31 229L237 261 390 382 603 493 308.5 537.5 101.5 381.5M370 905L295 764'/%3E%3Cpath d='M520 660L578 842 731 737 840 599 603 493 520 660 295 764 309 538 390 382 539 269 769 229 577.5 41.5 370 105 295 -36 126.5 79.5 237 261 102 382 40 599 -69 737 127 880'/%3E%3Cpath d='M520-140L578.5 42.5 731-63M603 493L539 269 237 261 370 105M902 382L539 269M390 382L102 382'/%3E%3Cpath d='M-222 42L126.5 79.5 370 105 539 269 577.5 41.5 927 80 769 229 902 382 603 493 731 737M295-36L577.5 41.5M578 842L295 764M40-201L127 80M102 382L-261 269'/%3E%3C/g%3E%3Cg fill='%23505'%3E%3Ccircle cx='769' cy='229' r='5'/%3E%3Ccircle cx='539' cy='269' r='5'/%3E%3Ccircle cx='603' cy='493' r='5'/%3E%3Ccircle cx='731' cy='737' r='5'/%3E%3Ccircle cx='520' cy='660' r='5'/%3E%3Ccircle cx='309' cy='538' r='5'/%3E%3Ccircle cx='295' cy='764' r='5'/%3E%3Ccircle cx='40' cy='599' r='5'/%3E%3Ccircle cx='102' cy='382' r='5'/%3E%3Ccircle cx='127' cy='80' r='5'/%3E%3Ccircle cx='370' cy='105' r='5'/%3E%3Ccircle cx='578' cy='42' r='5'/%3E%3Ccircle cx='237' cy='261' r='5'/%3E%3Ccircle cx='390' cy='382' r='5'/%3E%3C/g%3E%3C/svg%3E");
    text-align: center;
    }
    
    .main_content
    {
     background-color: white;    
     margin-left: 200px;
     margin-right: 200px;    
    }
    
    nav
    {
        text-align: center;
        position: relative;
        padding-left:800px;
        bottom: 130px;
    }
    
    nav li 
    {
        display: inline;
        list-style: none;
        margin-left: 50px;
    }
    
    nav li a 
    {
        color: black;
        text-decoration: none;
    }
    
    a:active
    {
        color: yellow;
    }
    
    a:hover
    {
    color:  red;
    }
    
    
    footer
    {
        text-decoration: none;
        background-color: black;
        margin-right: -8px;
        margin-left: -8px;
        margin-top: 100px;   
        padding-bottom:30px;
        padding-top:40px;
    }
    
    body
    {
    margin-bottom: 0px;    
    }
    .sitemap
    {
        color: white;
    }
    
    
    /* Style the navbar */
    #header-navbar {
      overflow: hidden;
      margin-left: -8px;
      margin-right: -8px;
      margin-top: -8px;    
    }
    
    /* Page content */
    
    .main_content {
      padding: 16px;
    }
    
    /* The sticky class is added to the navbar with JS when it reaches its scroll position */
    .sticky {
      position: fixed;   
      top: 0;
      width: 100%;  
    }
    
    /* Add some top padding to the page content to prevent sudden quick movement (as the navigation bar gets a new position at the top of the page (position:fixed and top:0) */
    .sticky + .content {
      padding-top: 60px;
    }
    // When the user scrolls the page, execute myFunction 
    window.onscroll = function() {myFunction()};
    
    // Get the navbar
    var navbar = document.getElementById("header-navbar");
    
    // Get the offset position of the navbar
    var sticky = navbar.offsetTop;
    
    // Add the sticky class to the navbar when you reach its scroll position. Remove "sticky" when you leave the scroll position
    function myFunction() {
      if (window.pageYOffset >= sticky) {
        navbar.classList.add("sticky")
      } else {
        navbar.classList.remove("sticky");
      }
    }



    • Partager sur Facebook
    • Partager sur Twitter
    Windows et Linux sont les meilleurs OS pour un informaticien.
      16 novembre 2018 à 15:14:46

      Personne j'ai besoin d'aide svp
      • Partager sur Facebook
      • Partager sur Twitter
      Windows et Linux sont les meilleurs OS pour un informaticien.
        16 novembre 2018 à 21:22:18

        tu veux pas qu il s affiche quand tu es en haut de la page?en js, tu peux modifier le moment ou ton sticky apparait, tu peux rajouter une marge pour tester, a ta variable var sticky tu rajoutes 1%  par exemple de la height de ta page (window).
        • Partager sur Facebook
        • Partager sur Twitter
          16 novembre 2018 à 21:49:55

          En faite après avoir scroller, quand en remonte le sticky prend toute la place, ce que je voudrais  c'est que tous redeviens comme au debut, je n'ai pas compris ou tu veux que je mette 1% a var sticky parce que var sticky c'est dans le JS je ne pense pas que je pourrais mettre un height dans le code JS
          • Partager sur Facebook
          • Partager sur Twitter
          Windows et Linux sont les meilleurs OS pour un informaticien.
            17 novembre 2018 à 0:46:13

            En faite, il faut que ajoute ta classe sticky au moment ou ton $(window).scrollTop() est supérieur à la taille de ton header, et vice versa pour l'enlever ;)
            • Partager sur Facebook
            • Partager sur Twitter

            ----------        Rien ne sert d'écrire vite si l'algorithme est mauvais         ----------

              17 novembre 2018 à 14:52:45

              Dsl j'ai chercher dans mon code $(window).scrollTop() pourrais tu me dire comment faire avec mon code stp 
              • Partager sur Facebook
              • Partager sur Twitter
              Windows et Linux sont les meilleurs OS pour un informaticien.
                17 novembre 2018 à 15:15:23

                <script type="text/javascript">
                     if($(window).scrollTop() > $('#header-navbar').height){
                        $('#header-navbar').addClass('sticky');
                     }else{
                        $('#header-navbar').removeClass('sticky');
                     }
                   </script>

                -
                Edité par Damien.O 17 novembre 2018 à 15:39:20

                • Partager sur Facebook
                • Partager sur Twitter

                ----------        Rien ne sert d'écrire vite si l'algorithme est mauvais         ----------

                  17 novembre 2018 à 15:35:52

                  removeClass dans le else ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 novembre 2018 à 15:39:12

                    Oui copier coller mon truc un peu vite, c'est corrigé ;)

                    -
                    Edité par Damien.O 17 novembre 2018 à 15:39:31

                    • Partager sur Facebook
                    • Partager sur Twitter

                    ----------        Rien ne sert d'écrire vite si l'algorithme est mauvais         ----------

                      17 novembre 2018 à 20:58:20

                      Sa ne marche pas j'ai mis le code dans mon fichier js j'ai remplacer le code qui ressemble avec celui la mais ya rien qui se passe , j'ai aussi mis en plus sans remplacer avec l'ancien code sa donne rien
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Windows et Linux sont les meilleurs OS pour un informaticien.
                        19 novembre 2018 à 13:29:12

                        J'ai besoin pour finir ce projet donc réponder moi svp
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Windows et Linux sont les meilleurs OS pour un informaticien.
                          19 novembre 2018 à 14:37:10

                          Je te remets le code en js natif, j'avais utilisé jquery en pensant que tu l'avais inséré :

                          <script type="text/javascript">
                              window.addEventListener('scroll', function(e) {
                          	 	if($(window).scrollTop() > document.getElementById("header").offsetHeight){
                          	        document.getElementById("header").className =" sticky";
                          	    }else{
                          	        document.getElementById("header").className =" ";
                          	    }
                          	});
                             </script>



                          Et hésite pas à chercher un peu avec les bons mots sur google, sans forcément copier coller tout ce qu'on te donne et en comprenant surtout ce qu'on te donne, c'est uniquement un conseil :)

                          -
                          Edité par Damien.O 19 novembre 2018 à 15:22:29

                          • Partager sur Facebook
                          • Partager sur Twitter

                          ----------        Rien ne sert d'écrire vite si l'algorithme est mauvais         ----------

                            19 novembre 2018 à 15:02:27

                            Ok mais le code je le met ou exactement ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Windows et Linux sont les meilleurs OS pour un informaticien.
                              19 novembre 2018 à 15:22:05

                              Tu copies colle le code à la fin de ton script main, ou juste après son appel. Après la si tu y arrives pas, je peux plus rien pour toi, reprends les cours de js depuis le départ.
                              • Partager sur Facebook
                              • Partager sur Twitter

                              ----------        Rien ne sert d'écrire vite si l'algorithme est mauvais         ----------

                                19 novembre 2018 à 16:10:05

                                Sa ne marche tjrs pas après y a des boutons rouges qui sont apparu sur mon éditeur de texte bracket c'est window is not defined
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Windows et Linux sont les meilleurs OS pour un informaticien.
                                  19 novembre 2018 à 16:16:26

                                  mets ça avant la fermeture de ton body :

                                  <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
                                  <script type="text/javascript">
                                       if($(window).scrollTop() > $('#header-navbar').height){
                                          $('#header-navbar').addClass('sticky');
                                       }else{
                                          $('#header-navbar').removeClass('sticky');
                                       }
                                     </script>



                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  ----------        Rien ne sert d'écrire vite si l'algorithme est mauvais         ----------

                                    19 novembre 2018 à 17:51:18

                                    Finalement j'ai abandonner parce que sa me casser la tete que sa marche pas je suis en train actuellement de chercher un autre script JS pour faire des sticky navbar sur le net merci pour ton aide :)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Windows et Linux sont les meilleurs OS pour un informaticien.
                                      19 novembre 2018 à 21:36:26

                                      La t'as juste à mettre le dernier code et ça marche, avec le jquery, aucun soucis, ta classe s'ajoute et s'enlève bien.
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      ----------        Rien ne sert d'écrire vite si l'algorithme est mauvais         ----------

                                        20 novembre 2018 à 10:44:34

                                        Sa marche tjrs pas bon j'ai abondonner ce script je vais travailler avec un autre

                                        -
                                        Edité par samyn-antoy 20 novembre 2018 à 11:29:28

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Windows et Linux sont les meilleurs OS pour un informaticien.

                                        [Sticky navbar] probleme avec l'affichage

                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                        • Editeur
                                        • Markdown