Bonjour à tous,

Je cherche la ligne de commande pour limité un affichage (un sous-menu dans mon cas) à un délai donné lorsque l'élément affiché n'est plus survolé. Si quelqu'un a la solution, je suis prenneur Smiley cligne .

Merci d'avance.
Modifié par lordbdp (24 Sep 2005 - 02:32)
Administrateur
Bonjour,

quel est le rapport avec un tutoriel publié sur Alsacréations? Même si c'est celui de la galerie des menus, la fonction demandée sort du cadre du tutoriel, c'est une question plus générale.
Je déplace ce sujet dans le Salon Général.

Felipe
Modifié par Felipe (03 Sep 2005 - 22:07)
Bonjour.

Un exemple:

<html>
<head>
<script>

function hide(node,delay)
{
timer=setTimeout("document.getElementById('" + node.id+ "').style.visibility='hidden'",delay)
}
</script>
</head>


<body>

<div style="width:100pt;height:100pt;background-color:white"
onclick="document.getElementById('menu').style.visibility='visible'">
Cliquez-moi!

<div id="menu" style="position:absolute;top:0;border 1pt solid red;width:100pt;height:100pt;background-color:silver;visibility:hidden"
onmouseout="hide(this,1000)">
Le contenu du menu
</div>


</div>

</body>

</html>


... Mise en oeuvre de setTimeOut. Attention aux guillemets.
Administrateur
C'est plutôt un script en fait Smiley confused

Combien de salons ce sujet va-t'il parcourir? bon je laisse là pour l'instant
Y'aurait pas possibilité de faire la même chose mais via la CSS ? Afin déviter d'alourdir les pages HTML...
ben en mettant ça, ça marche :

<script type="text/javascript">
window.onload=function(){dynMenu("menu")}
//active la feuille de style dynamique
document.getElementsByTagName("link")[0].href="e-central.css"

dynMenu = function(idmenu) {planq=0;
mu=document.getElementById(idmenu);
dls = mu.getElementsByTagName("dl");
dds = mu.getElementsByTagName("dd");

if(dds){
  for(var i=0;i<dls.length;i++) {
    dls[i].onmouseover=function(){
      clearTimeout(planq);
      smenu=this.getElementsByTagName("dd")[0]
      if(smenu){cachetout();smenu.style.display="block"}
      }
   dls[i].onmouseout=function(){planq=setTimeout('cachetout()',800);}
   }
  }
}
function cachetout(){for(var j=0;j<dds.length;j++)dds[j].style.display="none";}
</script>


mais maintenant j'ai tous les sous-menus qui restent affichés ensemble... Smiley decu [/i][/i]
Au final, j'ai refait le code point par point à partir du début et ça marche (ne me demandez pas comment, lol).

Merci quands même à tous, c'est toujours bon d'avoir l'avis d'autres pour essayer et découvrir !