Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème de taille (sens propre)

document.getElementById('popup<?php echo $l; ?>').offsetHeig

    25 avril 2009 à 13:28:59

    Bonjour à tous, j'ai trouvé un truc sur internet pour faire dérouler des élements, il était pas top je l'ai donc corrigé à ma guise, mais ne connaissant le javascript que depuis cette semaine (et oui, j'ai appris en modifiant le script trouvé) j'ai encore quelques prblèmes...
    voici mon code:
    $textecontenu = stripslashes($voir['contenu']);
    		$titre =  stripslashes($voir['titre']);
    		?>
    			<script type="text/javascript">
    			function Suite<?php echo $l; ?>(lien){
    				var objet = document.getElementById('popup<?php echo $l; ?>'); // entre les deux ' tu mes le nom du div que tu veux faire apparaître !
    				if(objet.style.display == "none" || !objet.style.display){
    					objet.innerHTML = "<?php $texteJ = ereg_replace("\r\n?", "<br />", $textecontenu);$texteJ = preg_replace(",\r\n?,", "", $texteJ); echo "Par: ".$voir3['login']."<br /><br />".addslashes($texteJ)."<br />"; ?>";
    					objet.style.display = "block";
    					objet.style.overflow = "hidden";
    					var Height = document.getElementById('popup<?php echo $l; ?>').offsetHeight;
    					lien.innerHTML = "<?php echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$titre; ?>";
    					lien.style.background = "url(../images/sans3.png) no-repeat top left";
    			        var hFinal      =     Height;  //Hauteur finale (la hauteur une fois que ça aura fini de déplier !)
    			        var hActuel     =     0;	 	//Hauteur initiale (la hauteur dès le début !))
    			        var timer;
    			        var fct =        function ()
    			        {
    			                hActuel  +=       20;     //Augmente la hauteur de 20px (tu peux modifier) tous les 40ms !
    			                objet.style.height     =	 hActuel      +     'px'; // hActuel +  'px' ;
    							objet.style.overflow    =   'hidden';
    			                if( hActuel > hFinal)
    			                {
    			                        clearInterval(timer);   //Arrête le timer
    			                        objet.style.overflow    =   'visible';
    			                }
    			        };
    			        fct();
    					timer = setInterval(fct,5);    //Toute les 40 ms
    				}else if(objet.style.display == "block"){
    					var Height = document.getElementById('popup<?php echo $l; ?>').offsetHeight;
    			        objet.style.overflow    =   'hidden';
    					var hFinal      =     0;  //Hauteur finale (la hauteur une fois que ça aura fini de déplier !)
    			        var hActuel     =     Height;	 	//Hauteur initiale (la hauteur dès le début !)
    			        var timer;
    			        var fct =        function ()
    			        {
    			                hActuel  -=   20;     //Augmente la hauteur de -20px (tu peux modifier) tous les 40ms !
    			                objet.style.height     =	 (hActuel)      +     'px';
    							objet.style.overflow    =   'hidden';
    			                if( hActuel < hFinal)
    			                {
    			                        clearInterval(timer);   //Arrête le timer
    									lien.style.background = "url(../images/sans4.png) no-repeat top left";
    			                        objet.style.overflow    =   'inherit';
    									objet.style.display     =   "none";
    			                }
    			        };
    			        fct();
    					timer = setInterval(fct,5);    //Toute les 40 ms
    					lien.innerHTML = "<?php echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$titre; ?>";
    				}
    			}
    			</script>
    		<?php
    		$voircontenu = ($voir['contenu']);
    		echo ("<span class=\"paragraphe\" style=\"font-size:17px;background: url(../images/sans4.png) no-repeat top left;\"><em><a href=\"javascript:;\" onclick=\"Suite".$l."(this)\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".stripslashes($voir['titre'])."</a></em></span>&nbsp;&nbsp;-<span class=\"date\">&nbsp;&nbsp;".$voir['date']."</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"index.php?page=messagerie.inc&rep=".$voir['id']."\"><img src=\"../images/rep.png\" alt=\"R&eacut;pondre\" title=\"R&eacute;pondre\" /></a>&nbsp;&nbsp;<a href=\"index.php?page=messagerie.inc&sup=".$voir['id']."\"><img src=\"../images/supp.png\" alt=\"Supprimer\" title=\"Supprimer\" height=\"14\" width=\"14\" /></a><br /><div id=\"popup".$l."\"></div><br />");
    

    Le tout marche assez bien, mais lorsque je déroule, referme et redéroule, la taille de l'élément n'est plus correcte.
    J'ai donc fait sa:
    objet.style.display = "block";
    					objet.style.overflow = "hidden";
    					lien.innerHTML = "<?php echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$titre; ?>";
    					lien.style.background = "url(../images/sans3.png) no-repeat top left";
    objet.innerHTML = Height;
    

    et là, il m'affiche ex: 200 pour le premier affichage, et après quand je referme et réouvre, il m'affiche (pour tous) 0 ..
    Une solution ?
    • Partager sur Facebook
    • Partager sur Twitter

    problème de taille (sens propre)

    × 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