11548 sujets

JavaScript, DOM et API Web HTML5

Salut
J'ai lu et parcouru tous les tutoriaux, j'ai beaucoup appris et je tiens à remercier Alsacréations.

Voilà j'ai un ptit probleme avec les menu deroulant avec celui ci :
- http://www.alsacreations.com/articles/deroulant/menu-horizontal.htm

Lorsque je sors du champ de menu celui ci est toujours visible, comment faire pour le faire disparaitre lorsque la souris est en dehors du menu.

J'ai fais une recherche sur le forum je n'ai rien trouvé.
Merci Smiley cligne
Modifié le 24 Nov 2004 - 12:33
tu 'as qu'a rajouter cette fonction dans le javascript

 function cache() {
   for (var i = 1; i<=10; i++) {
     document.getElementById('smenu'+i).style.display='none';
   }
 }


et ceci dans la balise body

<body [#red]onclick="javascript:cache();"[/#]>


voila, quand tu cliquera sur le body, les sous menu se refermeront...
Modifié le 21 Nov 2004 - 20:19
Oui ca marche mais j'aurai préferé un epetite temporisation, genre aprés une 2s il se caache est ce que c'est possible ?
J'ai une suggestion rapide qui ne demande pas trop de modification et qui conserve l'ajout de la fonction "cache()" d'eman73 :

Modifie le javascript initial de la sorte :


[#red]var timer;[/#]

function montre(id) {

window.clearTimeout(timer);

var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
if (d) {d.style.display='block'; [#red]timer=window.setTimeout("cache()", 5000);[/#]}
}


Le 5000 fait qu'au bout de 5 secondes, quoi qu'il arrive, les sous-menus ouverts se ferment...Ce qui peut devenir casse-pieds si tu descend à 2 secondes.

Qu'en dis-tu ?
Bon à la igueur je peux m'en contenter, mais lorsque qu'on est sur le menu est au bout de 5 seconde il se ferme, c'est un peu embetant. je trouve que c'est as efficace.

On peut s'en passer de la fonction cache() j'ai mis juste montre()
var timer;
function montre(id) {
window.clearTimeout(timer);
var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
if (d) {d.style.display='block'; timer=window.setTimeout("montre()", 2000);}
}



Je vais chercher encore, merci encore Smiley cligne
Administrateur
En attendant, je déplace dans le Salon Javascript où tu auras peut-être plus de chance.
Salut !!

un grand merci pour les reponses sur ce post, surtout a Alien 7 qui a trouvé exactement ce que je recherchais. J'ai quand même mis 4h a trouver comment faire ce menu deroulant qui disparait... Smiley confus (je debute ds le domaine je prefère preciser Smiley lol )

il a ecrit

a écrit :
Bon à la igueur je peux m'en contenter, mais lorsque qu'on est sur le menu est au bout de 5 seconde il se ferme, c'est un peu embetant. je trouve que c'est as efficace.

On peut s'en passer de la fonction cache() j'ai mis juste montre()
var timer;
function montre(id) {
window.clearTimeout(timer);
var d = document.getElementById(id);
for (var i = 1; i<=10; i++) {
if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
}
if (d) {d.style.display='block'; timer=window.setTimeout("montre()", 2000);}
}

Je vais chercher encore, merci encore



Merci encore et bravo a tout l'équipe de nous proposer ce site qui est trés complet, simple dans leur explication !!!

a+