11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous, j'aimerais utiliser ce menu en CSS :

http://css.alsacreations.com/xmedia/exemples/deroulant/menu-horizontal.htm

mais je n'arrive pas a faire en sorte que lorsque la souris n'est plus dessus
le menu deroulant disparaisse.

j'ai essayé de bricoler quelquechose en javascript en partant de cette base :


<!--
window.onload=montre;
function montre(id) {
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';}
}
//-->


Je suppose qu'avec cette ligne :


document.getElementById('smenu'+i).style.display='none';


Je devrais pouvoir arriver à mes fins mais je n'y arrive pas.

Merci d'avance pour votre aide.

Thomas Smiley biggrin
Modifié par erehcab (19 Aug 2006 - 09:41)
Modérateur
Salut,

Tu peux supprimer tous les codes Javascript contenus dans la partie XHTML et remplacer le script par celui-ci Smiley cligne :

var alsa =
{
	display: function()
	{
		if( !document.getElementById || !document.getElementsByTagName ) return false;
		var oDl = document.getElementById('menu').getElementsByTagName('dl'),
			oList = document.getElementById('menu').getElementsByTagName('dd'),
			iI = oDl.length - 1,
			iJ = oList.length - 1;
		for( iJ; iJ>=0; iJ-- )
		{
			oList[iJ].style.display = 'none';
		}
		for( iI; iI>=0; iI-- )
		{
			if( oDl[iI].getElementsByTagName('dd')[0] )
			{
				oDl[iI].onmouseover = function()
				{
					this.getElementsByTagName('dd')[0].style.display = 'block';
				}
				oDl[iI].onmouseout = function()
				{
					this.getElementsByTagName('dd')[0].style.display = 'none';
				}
			}
		}
		return true;
	}
};
var addLoadEvent = function(func)
{
	var oldonload = window.onload;
	if( typeof window.onload != 'function' )
	{
		window.onload = func;
	}
	else
	{
		window.onload = function()
		{
			oldonload();
			func();
		}
	}
};
addLoadEvent(alsa.display);

Ce sera mieux... Smiley rolleyes
MERCI !!!!!!

J'avais posté au mois de novembre dernier sur ce fameux menu et personne n'avait pu me répondre.
Me voila en train de flâner sur ce forum et je tombe plus ou mois par hasard sur ce topic... Grâce à vous deux, j'ai enfin pu régler mon problème ! Tout arrive ! Smiley biggrin

A bientôt !