Conflit Onload plusieurs fctions
Bonjour,
Voilà j'ai récupéré un script permettant de faire dérouler du texte (scroll) dans un div et qui utilise window.onload.
Seulement, je voudrais l'utiliser plusieurs fois. J'ai donc donc ajouter un chiffre au nom de chaque fonction (je ne sais pas si c'est nécéssaire mais bon) et pour le onload, après avoir lu quelques astuces, j'ai tenté de la manière suivante:
<body onload="getcontent_height18();getcontent_height19(); etc...">
Les chiffres étant en fait les id de mes news...
Avec cette méthode, je n'ai qu'une ou deux fonctions qui fonctionnent, les autres "div" ne se "scroll" pas!
Le script original a été pris là: http://www.dynamicdrive.com/dynamicindex11/scrollc2.htm
Voici le code en entier de ma page, pour différencier les "div" je les nomme à chaque fois avec l'id de la news en plus.
<?
$sql = "SELECT * FROM news ORDER BY date DESC";
$req = mysql_query($sql);
while($ligne = mysql_fetch_array($req)) {
$texte = $ligne[texte];
$t = $texte;
$text = bbcode($t);
$text2 = stripslashes($text);
$final = nl2br($text2);
?>
<div class="contentdiv">
<?
echo "<font class=Style3>$ligne[titre]</font>";
?>
<script type="text/javascript">
iens6=document.all||document.getElementById
ns4=document.layers
//specify speed of scroll (greater=faster)
var speed=5
if (iens6){
document.write('<div id="container<?php echo $ligne[id]; ?>" style="position:relative;width:535px;height:155px;border:0px solid black;overflow:hidden">')
document.write('<div id="content<?php echo $ligne[id]; ?>" style="position:absolute;width:530px;left:0;top:0">')
}
</script>
<ilayer name="nscontainer<?php echo $ligne[id]; ?>" width=535 height=160 clip="0,0,475,160">
<layer name="nscontent<?php echo $ligne[id]; ?>" width=535 height=160 visibility=hidden>
<?
echo "$final";
?>
</layer>
</ilayer>
<script language="JavaScript1.2">
if (iens6)
document.write('</div></div>')
</script>
<table width="475px"><td><p align="right">
<a href="#" onMouseover="moveup<?php echo $ligne[id]; ?>()" onMouseout="clearTimeout(moveupvar<?php echo $ligne[id]; ?>)"><img src="up.gif" border=0></a> <a href="#" onMouseover="movedown<?php echo $ligne[id]; ?>()" onMouseout="clearTimeout(movedownvar<?php echo $ligne[id]; ?>)"><img src="down.gif" border=0></a></p></td>
</table>
<script language="JavaScript1.2">
if (iens6){
var crossobj<?php echo $ligne[id]; ?>=document.getElementById? document.getElementById("content<?php echo $ligne[id]; ?>") : document.all.content<?php echo $ligne[id]; ?>
var contentheight<?php echo $ligne[id]; ?>=crossobj<?php echo $ligne[id]; ?>.offsetHeight
}
else if (ns4){
var crossobj<?php echo $ligne[id]; ?>=document.nscontainer<?php echo $ligne[id]; ?>.document.nscontent<?php echo $ligne[id]; ?>
var contentheight<?php echo $ligne[id]; ?>=crossobj<?php echo $ligne[id]; ?>.clip.height
}
function movedown<?php echo $ligne[id]; ?>(){
if (iens6&&parseInt(crossobj<?php echo $ligne[id]; ?>.style.top)>=(contentheight<?php echo $ligne[id]; ?>*(-1)+100))
crossobj<?php echo $ligne[id]; ?>.style.top=parseInt(crossobj<?php echo $ligne[id]; ?>.style.top)-speed+"px"
else if (ns4&&crossobj<?php echo $ligne[id]; ?>.top>=(contentheight<?php echo $ligne[id]; ?>*(-1)+100))
crossobj<?php echo $ligne[id]; ?>.top-=speed
movedownvar<?php echo $ligne[id]; ?>=setTimeout("movedown<?php echo $ligne[id]; ?>()",20)
}
function moveup<?php echo $ligne[id]; ?>(){
if (iens6&&parseInt(crossobj<?php echo $ligne[id]; ?>.style.top)<=0)
crossobj<?php echo $ligne[id]; ?>.style.top=parseInt(crossobj<?php echo $ligne[id]; ?>.style.top)+speed+"px"
else if (ns4&&crossobj<?php echo $ligne[id]; ?>.top<=0)
crossobj<?php echo $ligne[id]; ?>.top+=speed
moveupvar<?php echo $ligne[id]; ?>=setTimeout("moveup<?php echo $ligne[id]; ?>()",20)
}
function getcontent_height<?php echo $ligne[id]; ?>(){
if (iens6)
contentheight<?php echo $ligne[id]; ?>=crossobj<?php echo $ligne[id]; ?>.offsetHeight
else if (ns4)
document.nscontainer<?php echo $ligne[id]; ?>.document.nscontent<?php echo $ligne[id]; ?>.visibility="show"
}
</script>
</div>
<?
}
?>
</div>
En dessous de ça, j'ai le même script mais dénudé de tout php, dans sa forme la plus simple et donc la fonction est aussi appellée dans le <body onload>
Cela fait maintenant 3 jours que je planche là dessus, j'ai essayé diverse manière d'utiliser onload pour plusieurs fonctions mais je n'y arrive pas :'(
Merci beaucoup pour votre aide.
ah oui, petite précision, sur Firefox, tout marche impeccablement bien sur!
Bon, il n'est pas jeune ton script !...
je te conseillerais de recommencer tout depuis le début !...
expliques nous ce que tu souhaites faire, et on t'aideras !...
sinon, si tu veux, ya ce script : http://4code.fr/JS:post/view:Scroll_automatique_pour_vision_panoramique.html qui pourrait etre suffisant !.. et là je t'expliquerait comment l'installer en 2 lignes ;)
@++
Salut,
Ok je vais me re-diriger alors, je vais voir ton lien et essayer de me débrouiller avec ça :)
Merci beaucoup!
