Animation javascript simple

Fermé
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 - 12 oct. 2009 à 15:08
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 - 21 janv. 2010 à 09:29
Bonjour,

J'essaie de faire une petite animation simple en javascript, faire défiler un petit menu de gauche à droite au chargement de la page, mais la page plante... :

code :

function anime() {
	i = 0;
	
	while (i<150) {
		document.getElementById('menu1').style.left = i;
		i+10;
	}
}

setTimeout('anime();',1000);



C'est tout c...

ensuite y'a
<Body onload="anime();"> et la <div id="menu.."><code>Configuration: Windows Vista
Firefox 3.5.3
A voir également:

12 réponses

juanou Messages postés 137 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 23 août 2013 58
19 janv. 2010 à 18:13
Ah bah oui, forcément !
désolé.

Donc, pour une fonction javascript qui permet d'animer facilement le HTML :

https://reactdom.com/restful-api/


(fais-moi savoir si tu y trouves ton compte)
3
Bonjour

Et l'incrémentation de i se fait par i+=10;, pas i+10 tout seul. Actuellement, ton i est fixe et tu ne sors jamais de ta boucle.
Il vaudrait mieux ta tempo soit plus courte mais située entre 2 passage dans la boucle.
1
Ozimandias Messages postés 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
12 oct. 2009 à 15:34
la valeur de left en CSS s'exprime (dans ton cas) en pixels d'où la modif suivante:

function anime() {
	i = 0;
	
	while (i<150) {
		document.getElementById('menu1').style.left = i+'px';
		i+10;
	}
}

0
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 32
15 oct. 2009 à 10:33
Marche pas... Ce que j'essaie de faire, c'est tout simplement une div (un menu) qui vient de la gauche et de comprendre comment je l'ai fait. Des scripts j'en trouve, mais je le pige pas... Je veux faire simple... Un truc de ce genre devrait marcher.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ozimandias Messages postés 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
15 oct. 2009 à 11:57
Tu dois intégrer le timer à ta fonction pour la rappeler, j'ai fait quelques modifs...

function anime() {
	
	var left = document.getElementById('menu1').style.left;
	var posPX = left.indexOf('px');
	var i = parseInt(left.substring(0, posPX));
	//document.write(i);
	
	i += 10;
	
	if (i<150) {
		document.getElementById('menu1').style.left = i+'px';
	}
setTimeout('anime();',1000);
}



Et le code de ton div, les styles position et left sont obligatoires; sinon ça ne marchera pas:

<div id="menu1" style="background-color:#000000; width:10px; position:absolute; left:0px;">toto</div>
0
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 32
15 oct. 2009 à 14:54
Merci c'est cool, ca marche, seulement si si je met le style ailleurs grace à class="menu" ça ne marche plus...

Quand je fais style="left: ....." ça fonctionctionne, mais quand je fais class="menu", ça ne marche plus avec ma div... J'ai bien gardé l'id !
0
Ozimandias Messages postés 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
15 oct. 2009 à 15:08
Normal, "document.getElementById('menu1').style.left" va chercher la propriété left de l'attribut style de l'élement menu1.

Si ton style est extérieur à la balise , javascript ne peut le trouver. Il faut donc qu'il soit défini en direct dans ta balise div.
0
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 32
15 oct. 2009 à 15:11
aaaaaahhhhhhhh !!!

Bon à savoir...
0
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 32
15 oct. 2009 à 15:13
Merci
0
juanou Messages postés 137 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 23 août 2013 58
15 janv. 2010 à 20:19
Salut,
Si ça te dit, je peux aussi te proposer ce petit script de ma confection :

http://localhost/webmaster.bricks/billet.php?idBillet=26

Il permet de réaliser facilement des animations en javascript. Je pense que ça fera ton affaire.
0
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 32
18 janv. 2010 à 10:17
Ton lien vers localhost ne fonctionne pas ... ?
0
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 32
21 janv. 2010 à 09:29
Super ton lien et bravo, les scripts sont clairs, propres et très utiles !

Encore merci !
0