11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

J'ai un petit problème : Je souhaiterai obtenir un div dont la couleur de fond change à intervalle régulier.
Les couleurs de fond seraient définies dans la feuille de style.

Pour cela, j'ai utilisé le code suivant :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">	
	<head>
		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
		<title></title>
		<STYLE>
		<!--
		#messageback{
			color: #ffffff;
		}
		.messageback1{
			background-color: #6d930e;
		}
		.messageback2{
			background-color: #000000;
		}
		-->
		</STYLE>
		<SCRIPT LANGUAGE="JavaScript">
		<!--
			function switch_class(cible, style_a, style_b){
				if(document.getElementById){
					var objet = document.getElementById(cible);
					if(objet.className = style_a){
						objet.className = style_b;	
					}else if(objet.className = style_b){
						objet.className = style_a;	
					}
				}
			}			
			setInterval("switch_class('messageback', 'messageback1', 'messageback2');",1000);		
		-->
		</SCRIPT>
	</head>
	<body>
		<div id="messageback" class="messageback1">bolo bolobolo</div>
	</body>
</html>


Comme vous pouvez le constater, j'ai tenté de crée une fonction qui prend en paramètre une cible (ici mon div) et deux style entre lesquels switcher.

Le premier switch à bien lieu mais pas les suivant et malheureusement, je ne saisis pas pourquoi...

Peut-être pouvez-vous m'éclairer ?

Antoine Smiley smile

PS : L'url du fichier en ligne : http://www.potatos.fr/test_css/exemple16/exemple16.htm
Modifié par RockMakesMeSweat (28 Aug 2007 - 12:55)
Coucou,

Juste un petit oublie Smiley cligne

pour faire la verification dans tes conditions ce n'est pas = mais ==

donc :

if(objet.className == style_a){


Et voilà apres tout fonctionne Smiley cligne
Modifié par Halindel (28 Aug 2007 - 11:34)
Bon là, je suis super vert !

Je ne manipule pas souvent Javascript, du coups hier, avant de me lancer dans la rédaction de ma fonction, j'ai fait quelques recherches sur le net. Je suis tombé sur la page suivante : http://www.savoirquoifaire.com/index.php/2007/06/05/34-texte-clignotant-compatible-firefox-et-internet-explorer où le rédacteur propose un script qui fonctionne bien qu'utilisant un simple"=" pour tester ses égalités.
Du coups voyant ça, bien que un peu surpris, j'ai pensé qu'en javascript on utilisais pas le double "==".
J'avais tort et j'ai perdu ma soirée Smiley cligne

En tous cas, merci beaucoup pour ton aide !!!

Antoine
Tu peux même simplifier ton script :


objet.className = (objet.className == style_a) ? style_b : style_a;


Bonne continuation.
Romain