Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Javascript]Cacher, montrer...

    29 juin 2008 à 9:59:28

    Bonjour à tous,

    J'ai un script permettant de cacher/monter du texte grâce à javascript,

    Mais le soucis c'est que lorsque je montre ou cache du texte, la page remonte tout n haut, ce qui est dérangeant pour le visiteur...

    Voici mon code:

    function dohides()
    		{
    			var ps,idtohide,newlink,newtext;
    			ps=document.getElementsByTagName('h3');
    			for (i=0;i<ps.length;i++)
    			{
    				if(/MM_trigger/.test(ps[i].id))
    				{
    					idtohide = ps[i].id.match(/MM_trigger_.*\b/gi);
    					idtohide=idtohide[0].replace(/MM_trigger_/,'');
    					if(document.getElementById(idtohide))
    					{
    						document.getElementById(idtohide).style.display='none';
    					}
    					newlink=document.createElement('a');
    					newtext=document.createTextNode(ps[i].firstChild.nodeValue);
    					newlink.appendChild(newtext);
    					newlink.href='#'
    					newlink.onclick=function(){MM_showhide(this);}
    					newlink.onkeypress=function(){MM_showhide(this);}
    					ps[i].replaceChild(newlink,ps[i].firstChild)
    				}
    			}
    		}
    		function MM_showhide(o)
    		{
    			var idtohide,isid;
    			idtohide = o.parentNode.id.match(/MM_trigger_.*\b/gi);
    			idtohide=idtohide[0].replace(/MM_trigger_/,'');
    			if(document.getElementById(idtohide))
    			{
    				isid=document.getElementById(idtohide);
    				isid.style.display=isid.style.display=='none'?'block':'none';
    			}
    		}
    		window.onload=dohides;
    


    Je ne vois pas comment faire....

    Merci de votre aide.... :)
    • Partager sur Facebook
    • Partager sur Twitter
      29 juin 2008 à 10:59:24

      Hmm,
      Je ne suis pas un pro du javascript, mais essaye ca :

      <body onLoad="cacher_texte()">
      <div id="bloc1">
      <div id="texte">
      <p>bla bla bla bla bla bla bla bla bla bla bla</p><!-- ton texte a cacher -->
      </div>
      </div>
      <!-- reste de la page -->
      </body>
      


      function cacher_texte(){
      document.getElementById("bloc1").style.width = document.getElementById("bloc1").offsetWidth ;
      document.getElementById("texte").style.display = "none";
      }
      


      Il me semble que ca devrait aller, d'abord on prend la hauteur du bloc, et on lui attribut de maniere fixe, ensuite on cache son contenu.

      PS : j'ai peut etre fait des erreurs de syntaxe dans mon code javascript, comme je l'ai dit je suis pas un pro du javascript ^^
      • Partager sur Facebook
      • Partager sur Twitter
        1 juillet 2008 à 11:56:51

        Merci à toi...

        Mais malhereusement je n'ai pas réussi à faire fonctionner ton code...

        Si quelqu'un pourrait m'éclairer...

        Merci beaucoup.....

        :)
        • Partager sur Facebook
        • Partager sur Twitter
          2 juillet 2008 à 19:37:42

          Personne ne peut m'aider ?

          Merci...

          :)
          • Partager sur Facebook
          • Partager sur Twitter
            2 juillet 2008 à 20:07:44

            Lala, niveau taille j'ai plus court...

            function disparition()
            {
            if(document.getElementById)
            document.getElementById("connexion").style.visibility = 'hidden'
            }
            function afficher()
            {
            if(document.getElementById)
            document.getElementById("connexion").style.visibility = 'visible'
            }
            


            Donc au départ tu met un style hidden par exemple et puis l'utilisateur en cliquant sur quelque chose fera apparaître cela.

            Bien sûr c'est assez simplifié et il y à moyen d'optimiser.

            • Partager sur Facebook
            • Partager sur Twitter
              2 juillet 2008 à 23:08:27

              Merci à toi,

              Mais en fait, je me suis peut-être mal exprimé, mais je voudrais modifier mon code ( ci-dessus ) afin que lorsque je cache ou montre, la page reste au même endroit...

              Voila en espérant avoir été précis.

              Merci...

              :)
              • Partager sur Facebook
              • Partager sur Twitter
                2 juillet 2008 à 23:38:22

                Bha la page restera au même endroit puisque tu utilises un visibility hidden et non un display none...

                Ou bien j'ai aps compris...
                • Partager sur Facebook
                • Partager sur Twitter
                  8 juillet 2008 à 9:02:09

                  Haaaa dsl j'ai du mal avec javascript....

                  Quelqu'un pourrait me donner un simple exemple d'utilisation de ce code ?

                  Merci beaucoup :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 novembre 2008 à 23:03:41

                    hello,
                    (bon le post est un peu vieux >_>)
                    pour "ton probleme" de la remonter de page vers le haut
                    (j'ai le meme script) j'ai enlevé la ligne

                    newlink.href='#'
                    


                    voila, et la le visiteur restera au meme endroit puisque l'url n'est pas rechargée.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 novembre 2008 à 23:35:02

                      Krulls7ano a vu juste ;)
                      Pour faire un peu plus propre et avoir quand même un attribut href sur tes liens, tu peux mettre cela :
                      newlink.href='javascript:;';
                      
                      • Partager sur Facebook
                      • Partager sur Twitter

                      [Javascript]Cacher, montrer...

                      × 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