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 " ".$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 " ".$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)\"> ".stripslashes($voir['titre'])."</a></em></span> -<span class=\"date\"> ".$voir['date']."</span> <a href=\"index.php?page=messagerie.inc&rep=".$voir['id']."\"><img src=\"../images/rep.png\" alt=\"R&eacut;pondre\" title=\"Répondre\" /></a> <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:
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 ?
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.