Focus sur une div

Focus sur une div - HTML/CSS - Programmation

Marsh Posté le 16-03-2007 à 18:07:50    

Hello tous,

 

J'ai sur ma page une liste d'objets, et sur chaque objet j'ai un lien pour afficher une div 'menu' invisible. Je voudrais seulement faire en sorte que lorsqu'un menu est ouvert et que je clique à l'extérieur, celui-ci repasse en invisible...

 

Hors le onBlur appliqué à la div menu n'est jamais appelé, même lorsque j'ai forcé le focus sur elle :/

 

le code simplifié :

Code :
  1. <?php
  2.  $liste = array('pomme', 'banane', 'kiwi');
  3. ?>
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7.     <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  8.     <meta name="generator" content="PSPad editor, www.pspad.com">
  9. <title></title>
  10. <script language="javascript">
  11.  function Ouvrir_Menu(id) {
  12.   document.getElementById('menu_'+id).style.display = "block";
  13.   document.getElementById('menu_'+id).focus();
  14.  }
  15.  function Cacher_Menu(id) {
  16.   alert('ca marche');
  17.   document.getElementById('menu_track_'+id).style.display = "none";
  18.  }
  19. </script>
  20. <style type="text/css">
  21.    .element {
  22.   position:relative;
  23.   border:1px solid black;
  24.   width:500px;
  25.   height:80px;
  26.  }
  27.  .titre {
  28.   color:red;
  29.  }
  30.  .lienmenu {
  31.   color:blue;
  32.  }
  33.  .menu {
  34.   position:absolute;
  35.   width:200px;
  36.   height:200px;
  37.   display:none;
  38.   color:purple;
  39.   border:1px solid purple;
  40.   background-color:blue;
  41.  }
  42.     </style>
  43. </head>
  44.  
  45.  
  46. <body>
  47. <?php
  48. for ($i=0; $i<count($liste); $i++) {
  49. ?>
  50.  <div class="element">
  51.   <div class="titre"><?php echo $liste[$i]; ?></div>
  52.   <div class="lienmenu"><a href="javascript:Ouvrir_Menu(<?php echo $i; ?> );">menu</a></div>
  53.   <div class="menu" id="menu_<?php echo $i; ?>" onBlur="Cacher_Menu(<?php echo $i; ?> );">
  54.               blabla
  55.             </div>
  56.  </div>
  57. <?php
  58. }
  59. ?>
  60. </body>
  61. </html>
 

merci [:ojap]


Message édité par theredled le 16-03-2007 à 18:12:05

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 16-03-2007 à 18:07:50   

Reply

Marsh Posté le 16-03-2007 à 18:16:37    

Moi je verrais plutôt un OnMouseOut() avec un timer qui serait stoppé en cas de OnMouseOver().


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 16-03-2007 à 18:26:30    

dwogsi a écrit :

Moi je verrais plutôt un OnMouseOut() avec un timer qui serait stoppé en cas de OnMouseOver().


Au pire c'est possible aussi oui c'est vrai...

 

Ca ne m'arrange pas tellement car il devrait pouvoir y avoir un formulaire dans le "menu" mais si rien n'est possible...


Message édité par theredled le 16-03-2007 à 18:28:09

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 19-03-2007 à 14:44:14    

Heupe :)


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 19-03-2007 à 14:50:01    

le onfocus() sur un div ca n'existe pas :o :o :o idem pour le onblur()
 
dit toi bien ça :o

Reply

Marsh Posté le 19-03-2007 à 15:13:23    

gatsu35 a écrit :

le onfocus() sur un div ca n'existe pas :o :o :o idem pour le onblur()

 

dit toi bien ça :o


On me dit que si :o
http://msdn.microsoft.com/workshop [...] onblur.asp (cf "Applies To" )

 
Spoiler :

certes on me dit aussi l'inverse
http://www.w3.org/TR/html4/interact/scripts.html :(

Message cité 2 fois
Message édité par theredled le 19-03-2007 à 15:15:50

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 19-03-2007 à 15:16:31    

Mais comment ils font alors, dans les trucs en DHTML :??:

Message cité 1 fois
Message édité par theredled le 19-03-2007 à 15:18:10

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 19-03-2007 à 15:27:17    

theredled a écrit :

On me dit que si :o
http://msdn.microsoft.com/workshop [...] onblur.asp (cf "Applies To" )
 

Spoiler :

certes on me dit aussi l'inverse
http://www.w3.org/TR/html4/interact/scripts.html :(



 
C'est microsoft qui te le dit, mais faut pas suivre microsoft, mais le W3C.
 
en fait c'est sur le onclick tu affiche ton bouzin et tu met un event pour annuler le click sur toute la profondeur.
et sur le document.body tu rajoute un event sur le onclick qui cache le div.
 
Je te ferai une demo soit ce soir soit demain, en attend cherches ;)

Reply

Marsh Posté le 19-03-2007 à 15:32:14    


only for IE ... donc c'est pas bon :o

 
theredled a écrit :

Mais comment ils font alors, dans les trucs en DHTML :??:


les click, mouseover, mouseout sont tes amis, il faut les aimer aussi ( et en plus si tu le fais proprement ça marchera partout ).

 

edit: burned ...

 


Message édité par anapajari le 19-03-2007 à 15:32:43
Reply

Marsh Posté le 19-03-2007 à 15:32:41    

My god :\
 
Si tu prends les docs de microsoft pour argent comptant, t'es en pas sorti mon gars [:chrisbk]


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 19-03-2007 à 15:32:41   

Reply

Marsh Posté le 19-03-2007 à 17:48:38    

Shinuza a écrit :

My god :\
 
Si tu prends les docs de microsoft pour argent comptant, t'es en pas sorti mon gars [:chrisbk]


Ton navigateur n'affiche pas les spoilers [:o_dei]


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed