Application js

Résolu
ciltik -  
 ciltik -
Bonjour, j'aimerai modifier la taille de mes images, toutes les 4 segondes, je n'y arrive pas. Je ne sais pas utiliser setTimeout.
Mon code :
var image = document.getElementsByTagName('p'),
images = image.length;
for(i=0; i<images; setTimeout(function(){i++},4000))

{ if(i=0){
var paragraph = document.getElementById('img1'),
first = paragraph.firstChild;
first.setAttribute( 'height','500px');
first.setAttribute( 'width','500px');
var paragraph = document.getElementById('img2'),
first = paragraph.firstChild;
first.setAttribute( 'height','100px');
first.setAttribute( 'width','100px');
var paragraph = document.getElementById('img3'),
first = paragraph.firstChild;
first.setAttribute( 'height','100px');
first.setAttribute( 'width','100px');
}
else if(i=1)
{
var paragraph = document.getElementById('img2'),
first = paragraph.firstChild;
first.setAttribute( 'height','500px');
first.setAttribute( 'width','500px');
var paragraph = document.getElementById('img1'),
first = paragraph.firstChild;
first.setAttribute( 'height','100px');
first.setAttribute( 'width','100px');
var paragraph = document.getElementById('img3'),
first = paragraph.firstChild;
first.setAttribute( 'height','100px');
first.setAttribute( 'width','100px');
}
else if(i=2)
{
var paragraph = document.getElementById('img3'),
first = paragraph.firstChild;
first.setAttribute( 'height','500px');
first.setAttribute( 'width','500px');
var paragraph = document.getElementById('img2'),
first = paragraph.firstChild;
first.setAttribute( 'height','100px');
first.setAttribute( 'width','100px');
var paragraph = document.getElementById('img1'),
first = paragraph.firstChild;
first.setAttribute( 'height','100px');
first.setAttribute( 'width','100px');
}
}
cordialement



3 réponses

matthoffman Messages postés 405 Date d'inscription   Statut Membre Dernière intervention   47
 
"Alors je devrai utiliser if(i==0) ?

et pour que la fonction tourne toute les 4 secondes je devrait mettre setimeout a chaque boucle ? "

Oui a tes 2 questions.

Quant au code qui fonctionne sur une image et pas sur l'autre, comme je te l'ai explique precedemment, cela vient du fait que tu boucles indefiniment avec un i qui vaut 0, donc forcement tu n'iras jamais dans les autres cas.

Il faut que tu repenses ton algo et ta structure du code.

Je te conseille de creer une fonction (generique au maximum) pour redimensionner tes images.
Ensuite, dans ton script, a l'interieur de ta boucle tu fais appel a set timeout.
1
matthoffman Messages postés 405 Date d'inscription   Statut Membre Dernière intervention   47
 
for(i=0; i<images; setTimeout(function(){i++},4000)) 


Alors deja on ne fait jamais ca parce que t'es en train de dire, je fais une boucle infinie de 4 secondes et j'incremente mon i a la 4eme seconde.
Donc deja tu n'atteindras jamais ta borne maximale puisque tu incrementeras i une seule fois (a la 4eme seconde).

Ensuite tes tests "if(i=2)", tu ne regardes pas si i egal 2, mais tu fais i recois 2

Enfin je ne sais pas ou tu as trouve ca:
var paragraph = document.getElementById('img3'),
first = paragraph.firstChild;
first.setAttribute( 'height','500px');
first.setAttribute( 'width','500px'); 


Mais ca me parait douteux et tire par les cheveux: il suffit de faire ca:
		var paragraph = document.getElementById('img1');
		paragraph.style.width = 500 + 'px';
		paragraph.style.height = 500 + 'px';


Sinon pour timeout cela s'utilise avec une string en premier argument.

Un exemple:
setTimeout("alert(1)", 4000);


Ce code fait que a la 4eme seconde, un "1" va s'afficher en popup.
Cela ne fait pas apparaitre un "1" en popup toutes les 4 secondes !!
0
ciltik
 
Bonjour et merci d'avoir répondu.
Quand je fais le code



var image = document.getElementsByTagName('p'),
images = image.length;
var paragraph = document.getElementById('img3'),
first = paragraph.firstChild;
first.setAttribute( 'height','500px');
first.setAttribute( 'width','500px');

l'image n'est pas modifié.

contrairement a celui-ci

var image = document.getElementsByTagName('p'),
images = image.length;
var paragraph = document.getElementById('img1'),
first = paragraph.firstChild;
first.setAttribute( 'height','500px');
first.setAttribute( 'width','500px');
.
Alors je devrai utiliser if(i==0) ?


et pour que la fonction tourne toute les 4 secondes je devrait mettre setimeout a chaque boucle ?

cordialement
0
ciltik
 
Merci, le code fonctionne tourne bien.
0