Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1663 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  rollover et liste déroulante -> c'est moche

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

rollover et liste déroulante -> c'est moche

n°754475
$man
Posté le 07-06-2004 à 10:58:10  profilanswer
 

salut,
je veux faire une infobulle avec un rollover, le pb c'est que si y'a une liste déroulante a proximité, c'est tout moche il est "encastré" dans l'infobulle comme sur ce site : http://www.toutjavascript.com/main/search.php3 si vous survolez le menu -> Les Scripts.  
Y'a t-il une solution ?
Le script utilisé :

Code :
  1. <SCRIPT LANGUAGE="JavaScript" type="text/javascript">
  2. //D'autres scripts sur http://www.toutjavascript.com
  3. //Si vous utilisez ce script, merci de m'avertir !  < webmaster@toutjavascript.com >
  4. //Auteur original :Olivier Hondermarck  <webmaster@toutjavascript.com>
  5. //Modifs compatibilité Netscape 6/Mozilla : Cédric Lamalle 09/2001 <cedric@cpac.embrapa.br>
  6. //Correction Mac IE5 (Merci Fred)
  7. var IB=new Object;
  8. var posX=0;posY=0;
  9. var xOffset=10;yOffset=10;
  10. function AffBulle(texte) {
  11.   contenu="<TABLE border=0 cellspacing=0 cellpadding="+IB.NbPixel+"><TR bgcolor='"+IB.ColContour+"'><TD><TABLE border=0 cellpadding=2 cellspacing=0 bgcolor='"+IB.ColFond+"'><TR><TD><FONT size='-1' face='arial' color='"+IB.ColTexte+"'>"+texte+"</FONT></TD></TR></TABLE></TD></TR></TABLE>&nbsp;";
  12.   var finalPosX=posX-xOffset;
  13.   if (finalPosX<0) finalPosX=0;
  14.   if (document.layers) {
  15.     document.layers["bulle"].document.write(contenu);
  16.     document.layers["bulle"].document.close();
  17.     document.layers["bulle"].top=posY+yOffset;
  18.     document.layers["bulle"].left=finalPosX;
  19.     document.layers["bulle"].visibility="show";}
  20.   if (document.all) {
  21.     //var f=window.event;
  22.     //doc=document.body.scrollTop;
  23.     bulle.innerHTML=contenu;
  24.     document.all["bulle"].style.top=posY+yOffset;
  25.     document.all["bulle"].style.left=finalPosX;//f.x-xOffset;
  26.     document.all["bulle"].style.visibility="visible";
  27.   }
  28.   //modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
  29.   else if (document.getElementById) {
  30.     document.getElementById("bulle" ).innerHTML=contenu;
  31.     document.getElementById("bulle" ).style.top=posY+yOffset;
  32.     document.getElementById("bulle" ).style.left=finalPosX;
  33.     document.getElementById("bulle" ).style.visibility="visible";
  34.   }
  35. }
  36. function getMousePos(e) {
  37.   if (document.all) {
  38.   posX=event.x+document.body.scrollLeft; //modifs CL 09/2001 - IE : regrouper l'évènement
  39.   posY=event.y+document.body.scrollTop;
  40.   }
  41.   else {
  42.   posX=e.pageX; //modifs CL 09/2001 - NS6 : celui-ci ne supporte pas e.x et e.y
  43.   posY=e.pageY;
  44.   }
  45. }
  46. function HideBulle() {
  47. if (document.layers) {document.layers["bulle"].visibility="hide";}
  48. if (document.all) {document.all["bulle"].style.visibility="hidden";}
  49. else if (document.getElementById){document.getElementById("bulle" ).style.visibility="hidden";}
  50. }
  51. function InitBulle(ColTexte,ColFond,ColContour,NbPixel) {
  52. IB.ColTexte=ColTexte;IB.ColFond=ColFond;IB.ColContour=ColContour;IB.NbPixel=NbPixel;
  53. if (document.layers) {
  54.  window.captureEvents(Event.MOUSEMOVE);window.onMouseMove=getMousePos;
  55.  document.write("<LAYER name='bulle' top=0 left=0 visibility='hide'></LAYER>" );
  56. }
  57. if (document.all) {
  58.  document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>" );
  59.  document.onmousemove=getMousePos;
  60. }
  61. //modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
  62. else if (document.getElementById) {
  63.         document.onmousemove=getMousePos;
  64.         document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>" );
  65. }
  66. }
  67. </SCRIPT>


marci d'avance

mood
Publicité
Posté le 07-06-2004 à 10:58:10  profilanswer
 

n°754797
$man
Posté le 07-06-2004 à 14:02:34  profilanswer
 

:o

n°754810
Hermes le ​Messager
Breton Quiétiste
Posté le 07-06-2004 à 14:08:40  profilanswer
 

Non. Apprend le JS. On ne debbugue pas les scripts pris ici où là.

n°754867
$man
Posté le 07-06-2004 à 14:40:34  profilanswer
 

exact, j'ai un besoin ponctuel en js mais je vais me taper toute la doc! je préfere consacrer mes efforts à apprendre le php! Apprend, apprend, c'est facile de dire çà, si j'avais le temps, je pourrais en apprendre des choses :)

n°754958
boulax
Inserer phrase hype en anglais
Posté le 07-06-2004 à 15:40:22  profilanswer
 

Pas de probleme d'affichage avec le dernier mozilla. Peut etre le z-index de ton div qu'il faudrait positionner par rapport aux autres éléments.
EDIT: en fait si j'ai dis une connerie, le pb est bien la


Message édité par boulax le 07-06-2004 à 21:01:21

---------------
Posté depuis des chiottes, sales. Me gusta.
n°755091
$man
Posté le 07-06-2004 à 16:54:33  profilanswer
 

arf, merci je regarderais quand j'aurais le temps :)

n°755277
loufoque
Posté le 07-06-2004 à 19:13:02  profilanswer
 

Que c'est sale...

n°755287
harrysauce
Miaaaooou!
Posté le 07-06-2004 à 19:23:52  profilanswer
 

Nan, spa possible :o
 
En gros t'as 2 types d'éléments dans une fenêtre :
 
les windowless, l'élément est dessiné dans la fenêtre courante, qui sont les tableaux, les div, les champs de saisie, etc...
 
et les windowed, une nouvelle fenêtre est créée, ce sont les frame et iframe, les listes déroulante, etc...
 
Et les éléments windowed sont TOUJOURS par dessus les éléments windowless. Après  tu peux modifier le z-index, mais celui-ci n'est actif qu'entre des éléments de même type (windowledd, ou windowed)....
 
EDIT : et si jamais y'a moyen de contourner ca, je suis preneur :D


Message édité par harrysauce le 07-06-2004 à 19:24:53
n°755463
boulax
Inserer phrase hype en anglais
Posté le 07-06-2004 à 21:10:22  profilanswer
 

A mon avis le mieux c'est de contourner ca en obligeant les listes deroulantes a se fermer lorsque tu passes sur ton menu. Apres tout le type qui fait ca il va pas bien, si tu déroule une liste c'est pour faire un choix... Reste a trouver si en Js tu peu fermer de maniere pas trop brutale une combo box.
Sinon tu peu toujours forcer le selectedIndex mais c'est pas dit que ca fermera effecetivement la liste... A tester ...


---------------
Posté depuis des chiottes, sales. Me gusta.
n°755530
harrysauce
Miaaaooou!
Posté le 07-06-2004 à 22:16:37  profilanswer
 

boulax a écrit :

A mon avis le mieux c'est de contourner ca en obligeant les listes deroulantes a se fermer lorsque tu passes sur ton menu. Apres tout le type qui fait ca il va pas bien, si tu déroule une liste c'est pour faire un choix... Reste a trouver si en Js tu peu fermer de maniere pas trop brutale une combo box.
Sinon tu peu toujours forcer le selectedIndex mais c'est pas dit que ca fermera effecetivement la liste... A tester ...


 :non:  
Ca le fait liste non déroulée, et le seul moyen serait de cacher la liste déroulante, et non la fermer :o

mood
Publicité
Posté le 07-06-2004 à 22:16:37  profilanswer
 

n°755542
boulax
Inserer phrase hype en anglais
Posté le 07-06-2004 à 22:23:04  profilanswer
 

harrysauce a écrit :

:non:  
Ca le fait liste non déroulée


pas avec mozilla...


---------------
Posté depuis des chiottes, sales. Me gusta.
n°755618
harrysauce
Miaaaooou!
Posté le 07-06-2004 à 23:25:12  profilanswer
 

boulax a écrit :

pas avec mozilla...

oui mais mozilla est pas utilisé par 90% des internautes [:spamafote]

n°755626
boulax
Inserer phrase hype en anglais
Posté le 07-06-2004 à 23:29:07  profilanswer
 

harrysauce a écrit :

oui mais mozilla est pas utilisé par 90% des internautes [:spamafote]


 
ce qu'il faut retenir c'est que c'est peut etre une interpretation differente d'un parametre css non renseigné qui fait que sur mozilla c'est affiché correctement.
 


---------------
Posté depuis des chiottes, sales. Me gusta.
n°755705
harrysauce
Miaaaooou!
Posté le 08-06-2004 à 01:17:58  profilanswer
 

boulax a écrit :

ce qu'il faut retenir c'est que c'est peut etre une interpretation differente d'un parametre css non renseigné qui fait que sur mozilla c'est affiché correctement.


 

harrysauce a écrit :

Nan, spa possible :o
 
En gros t'as 2 types d'éléments dans une fenêtre :
 
les windowless, l'élément est dessiné dans la fenêtre courante, qui sont les tableaux, les div, les champs de saisie, etc...
 
et les windowed, une nouvelle fenêtre est créée, ce sont les frame et iframe, les listes déroulante, etc...
 
Et les éléments windowed sont TOUJOURS par dessus les éléments windowless. Après  tu peux modifier le z-index, mais celui-ci n'est actif qu'entre des éléments de même type (windowledd, ou windowed)....
 
EDIT : et si jamais y'a moyen de contourner ca, je suis preneur :D


Et mozilla doit gérer ca différement....


Message édité par harrysauce le 08-06-2004 à 01:18:31
n°756672
$man
Posté le 08-06-2004 à 15:47:28  profilanswer
 

deja merci de vos réponses!
j'ai regardé de mon côté et effectivement c'est pas simple!
j'ai vu comme harrysauce l'a dit, que certains "jouaient" sur le z-index, mais avec un browser basé sur gecko, c'est bof. c'est dommage car ce systeme d'infobulle était bien pratique! je ne suis pas un adepte du js mais comme c'est pour faire un test ou on choisit la réponses dans une liste déroulante, ce systeme me permettait de détailler la question quand on passait dessus. D'ailleurs si quelqu'un a une idée conceptuelle pour remplacer ca, je suis preneur :)


Message édité par $man le 08-06-2004 à 15:47:58

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  rollover et liste déroulante -> c'est moche

 

Sujets relatifs
[JavaScript] - Modifier une liste déroulante sur une fenetre mereListe deroulante avec saisie semi-auto ???
[ADA] Erreur d'execution | liste chainée => soucis de pointeur ?refresh et formulaire (liste deroulante)
J'aimerai faire une liste de contact puis un un forum en PHP maisliste dans un bdd
Mise à jour de champs à partir de liste déroulante...? 
Plus de sujets relatifs à : rollover et liste déroulante -> c'est moche


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR