Bonjour à tous, comme beaucoup, j'ai choisi de mettre sur mon site le menu horizontal Alsacreations http://css.alsacreations.com/xmedia/exemples/deroulant/menu-horizontal.htm et il fonctionne très bien, j'en suis très content. Cependant, un petit détail me gêne : le fait que les sous-menus restent développés jusqu'à ce qu'on repasse sur le menu. J'aimerais avoir une temporisation de 1000ms après laquelle les sous-menus se refermeraient. Je ne connais rien en js mais j'ai entendu parler d'un timout qui règlerait mon problème. Est-ce qu'une bonne âme pourrait reprendre le js initial du menu et le modifier pour avoir cette tempo ? Je suis désolé si la réponse existe déja sur le forum mais je ne l'ai pas trouvée Smiley confused ! Merci d'avance Smiley biggrin !!!
Modifié par Requiemken (22 Apr 2006 - 23:31)
Essaie ceci

function cache(id) {
   var d = document.getElementById(id);
   d.style.display='none';
}


puis appelle cache sur onMouseOut des balises <dd>


<dd id="smenu1" onMouseOut="cache('smenu1')">


je ne l'ai pas testé, j'Espère que ca t'aide
Ok je vais déja essayer ça merci de ta réponse j'éditerais pour te dire si ça fonctionne.
EDIT : Et non, ça ne fonctionne pas ! En effet, lors du passage de la souris entre deux liens, le sous-menu ce referme rendant la navigation impossible. Merci quand même !
Modifié par Requiemken (22 Apr 2006 - 19:12)
ouais, je t'ai répondu rapidement, et javais pas testé avant Smiley langue

Ce que je t'ai donné ne fontionne pas, jvais regarder le code et te donnerai une réponse d'ici peu
Oui Smiley biggrin j'ai vu ça lol ! Je crois vraiment que la solution se trouve dans le timeout mais je ne sais pas comment m'y prendre Smiley biggol !
pas nécessairement de mettre un timeout...

l'idée est simple... lorsque tu "onmouseout" de ton sous-menu, tu le cache... c'est ce que j'essaie de faire en ce moment.... mais je récupère d'un lendemain de veille pénible.. Smiley langue
Voila... je ne crois pas que c'est la facon la plus orthodoxe de le faire, mais ceci semble fonctionner. Reprends la fonction cache que j'avais écris précedemment


<dt onmouseover="javascript:montre('smenu1');">Menu 1</dt>
<dd id="smenu1" onmouseover="javascript:montre('smenu1');" onmouseout="javascript:cache('smenu1');">

Modifié par kirederf (22 Apr 2006 - 19:26)
Merci beaucoup à kirederf pour avoir tenté de m'aider, mais la réponse m'a été apportée par Alan. En effet, en utilisant le js du menu qu'Alan m'a montré, j'ai réussi à avoir une temporisation sur le menu horizontal Alsacreation et j'ai aussi pu l'adapter pour qu'il fonctionne en en js désactivé. Merci beaucoup à vous deux. On peut clore le sujet Smiley cligne !!!
J'ai galèré avec ce menu, parceque si un sous-menu ne se cache pas il se superpose sur un formulaire.

J'ai tenté d'utiliser onMouseOut sur de dd, mais ça le fait pas au moment voulu.

J'ai tenté d'utiliser un TimeOut, mais le clearTimeOut n'a jamais fait ce que je voulais. En particulier, si on ne fait rien (genre on lit le contenu du sous-menu), il disparaît, ça énerve les utilisateurs.

Finalement, j'ai trouver plus simple j'ajouter dans les a
onclick="javascript:montre();"
Comme cela, lorsqu'on a choisi, les sous menus disparaissent.

Si ça peut aider quelqu'un...

	<dl>			
		<dt onmouseover="javascript:montre('smenu2');" >Clients</dt>
			<dd id="smenu2">
				<ul>
					<li><a href="/restaurant/liste_clients.php" onclick="javascript:montre();">Liste</a></li>
					<li><a href="/restaurant/ajout_client.php" onclick="javascript:montre();">Ajout</a></li>
				</ul>
			</dd>			
	</dl>

Modifié par SylvainBouchet (17 Aug 2006 - 12:16)