all HTML

Accèdez à votre compte : 

Créer un compte …

Perte de mot de passe …

  • Accueil
  • Forum de discussions
  • Publications
  • Communauté

Poser une question

Sélection des sujets

  • Toutes les discussions
  • Questions sans réponse
  • par langage de programmation :
    html css javascript php sql asp xml java C# action script
  • par thématique :
    animation - motion design graphisme - webdesign audio - vidéo accessibilité droit - législation web apps - logiciels référencement - seo hébergement administration serveur site web e-commerce

Conflit Onload plusieurs fctions

Sujet publié le 29/09/2010 par Styleman et classé dans javascript

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.

par Styleman, 29/09/2010 à 16h59
++ Styleman

répondre

ah oui, petite précision, sur Firefox, tout marche impeccablement bien sur!

par Styleman, 29/09/2010 à 17h04
++ Styleman

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 ;)

@++

par nours312 [modérateur], 29/09/2010 à 17h12
nours312.com -- je ne suis pas codeur bénévole, mais j'aide gratos ;)

Salut,

Ok je vais me re-diriger alors, je vais voir ton lien et essayer de me débrouiller avec ça :)

Merci beaucoup!

par Styleman, 29/09/2010 à 22h17
++ Styleman
TN Requin|Tn Reqyub|Air Max 90| Tn|Tn Requinest ce que sans avoir a compiler il existe un possibilité de configurer ma connexion Wifi avec cette version de Morphix sachant que le noyau est 2.6.9.?
par shanshan, 16/10/2010 à 15h01

répondre

  • nous contacter
  • mentions légales