11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour, après la lecture de quelques tutos Javascript, je parviens à créer quelques petits trucs sympas, mais pour cet "exercice" j'ai un petit souci... mon idée est de créer un "resizer" via un lien. En cliquant dessus, on agrandirait un paragraphe, la phrase "rétrécir le paragraphe" se transforme en "agrandir ce paragraphe" et en re cliquant dessus on peut revenir à la taille initiale.

J'ai réussi à rétrécir le paragraphe lors du clic, à changer la phrase, mais pour le ré-agrandissement j'ai qques petits soucis. Je me suis dit que j'allais utiliser un système de drapeau: quand je clic, il passe à 1, sinon il est à 0.

Voici mon code JS (je vous épargne le HTML/CSS Smiley langue ):
document.getElementById("resizer").innerHTML="(réduire cette phrase)";
function resize(){
	var drap="0";
	if (drap=="0") {
                var drap="1";
		document.getElementById("introduction").style.fontSize= "10px";
		document.getElementById("resizer").innerHTML="(agrandir cette phrase)";
	}

	else if (drap=="1") {
		document.getElementById("introduction").style.fontSize= "25px";
	}
}


Je sais que le drap passe à 1 directement et donc qu'il saute directement à else if... mais je sais pas comment arranger ça Smiley decu

Merci d'avance!
Essai de sortir le premier var drap =0; hors de ta fonction.

Comme tu présentes ton JS, à chaque fois que tu appelles resize, tu redéfinies drap à 0, donc il est nécessairement toujours à 0.
document.getElementById("resizer").innerHTML="(réduire cette phrase)";
var drap="0";
function resize(){
	if (drap=="0") {
		var drap="1";
		document.getElementById("introduction").style.fontSize= "10px";
		document.getElementById("resizer").innerHTML="(agrandir cette phrase)";
	}

	else if (drap=="1") {
		document.getElementById("introduction").style.fontSize= "25px";
	}
}


Désormais le rétrécissement ne s'effectue même plus Smiley ohwell
Euh oui, j'avais vu et j'ai oublié de le souligner dans le message précédent.

Ton "var" DANS la fonction signifie que tu recréé une variable pour la fonction dont le nom est "drap", ce qui écrase la déclaration précédente.

Il te suffit donc de supprimer le var > var drap="1"; > drap = "1";

http://jsfiddle.net/SzxdA/
oui oui, tu peux parfaitement faire if(condition) { action } et t'arrêter là.
Modifié par kenor (19 Nov 2011 - 22:42)