11548 sujets

JavaScript, DOM et API Web HTML5

J'essaie de monter un script avec un div overflow dans un autre div, mais je n'arrive pas à ce que celà fontionne avec Firefox, qu'est ce qui ne va pas dans mon code ?

NB : Le script fait défiler le second div dans le premier de gauche à droite et de droite à gauche.

HTML

<div id="firstdiv" style="width:300px;overflow:hidden;position:relative;">
          <div id="seconddiv" style="width:610px;position:absolute;left:-610px;top:0;">test</div>
</div>


Javascript

 var temp = 1;
 var objdiv = document.getElementById("firstdiv").style;
 var larg = parseInt(objdiv.width);	
 var obj = document.getElementById("seconddiv").style;						
 var largeur = parseInt(obj.width);
 var pos=-(largeur+20)			

moveMyDivRight()

function moveMyDivRight() {
flag = 0;											
if(pos<larg+20)							
 {
obj.left = pos;
 pos+=1;											
 tempo=setTimeout('moveMyDivRight()', temp);	
 flag++;											
} else {											
moveMyDivLeft()	
						 
 }
}

function moveMyDivLeft() {
flag = 0;											
if(pos>-(largeur+20))		
 {
obj.left = pos;	
 pos-=1;											
 tempo=setTimeout('moveMyDivLeft()', temp);	
 flag--;											
 } else {											
 moveMyDivRight();                            

 }
}


Merci pour vos réponses !
Modifié par EricLB (06 Jul 2006 - 18:24)
Bonjour ça fonctionne sur IE & Firefox maintenant ( j'ai juste rajouté +"px" à la variable pos) mais pas sur Opera...

Y a-t-il une spécificité supplémentaire pour ce navigateur


<script type="text/javascript">
 var temp = 1;
 var objdiv = document.getElementById("firstdiv").style;
 var larg = parseInt(objdiv.width);	
 var obj = document.getElementById("seconddiv").style;						
 var largeur = parseInt(obj.width);
 var pos=-(largeur+20)			


moveMyDivRight()

function moveMyDivRight() {
flag = 0;											
if(pos<larg+20)							
 {
obj.left = pos+"px"; //px pour firefox
 pos+=1;											
 tempo=setTimeout('moveMyDivRight()', temp);	
flag++;
} else {											
moveMyDivLeft()	
						 
 }
}

function moveMyDivLeft() {
flag = 0;											
if(pos>-(largeur+20))		
 {
obj.left = pos+"px";	//px pour firefox
 pos-=1;											
 tempo=setTimeout('moveMyDivLeft()', temp);	
 flag--;											
 } else {											
 moveMyDivRight();                            

 }
}

</script>


Pas encore de réponse à ce post, j'espère qu'un spécialiste voudra bien ce pencher sur le problème.

J'ai pas testé sur MAC, si quelqu'un pouvait me dire si ça fonctionne.

Merci
Modifié par EricLB (07 Jun 2006 - 11:18)
BONJOUR,
Avant de poser de nouvelles questions, il est bien de cloturer les précédents posts.
Bonjour,

Est-il impossible voire interdit d'ouvrir plusieurs posts simultanément ?

J'ai pour habitude de cloturer mes posts dès que la réponse me satisfait...
Mais peut-être ai-je oublié, dans ce cas peux-tu me dire de quel post il s'agit ?

Merci Smiley smile
Administrateur
EricLB a écrit :
Est-il impossible voire interdit d'ouvrir plusieurs posts simultanément ?

Non, ce n''est pas une règle immuable, c'est simplement pour éviter les dispersions et les oublis de posts.
Cela arrive parfois avec les nouveaux mais ce n'est pas ton cas.
OK, je viens de clore tous les sujets anciens (+d'1mois) qui n'ont pas eu de réponse ou qui amenait une discussion.

Il doit rester 4/5 posts en cours !

Smiley cligne
Je parlais de ce post. En effet il est récent et j'ai été un peu vite Smiley ohwell

Pour Opéra, je ne vois pas, pour trouver ce qui coince, il faut modifier ton script par étapes, jusqu'à temps que ça marche. Par exemple : pour obtenir la largeur de ton div, il y a aussi offsetWith. Smiley cligne
Modifié par chmel (07 Jun 2006 - 17:32)
ok, mais l'idée c'est de pointer sur les css...
J'ai beau modifier mon script et faire des alert un peu partout dans le code, je ne vois rien qui cloche... D'ailleurs dans la console javascript d'opéra je n'ai aucune erreur ! Le néant total !!!