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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] (rollover) comment afficher un calque pendant n secondes ????

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JS] (rollover) comment afficher un calque pendant n secondes ????

n°274069
Profil sup​primé
Posté le 20-12-2002 à 19:05:46  answer
 

Lus all,
 
chui débutant, et en train de monter un rollover en js.
j ai reussi a faire en sorte que lorsqu'on passe sur une image, un menu correspondant s affiche dans un calque.
 
ce que j aimerais faire maintenant, c que ce menu se masque au bout de 5 secondes par ex si la personne ne fait rien, ou si elle va sur un autre objet qui declenche l apparition d'un autre masque.
 
j'ai pas trouvé la balise (ou la ruse) pour ce comportement.
 
merci d avance, c urgent.


Message édité par Profil supprimé le 20-12-2002 à 19:22:28
mood
Publicité
Posté le 20-12-2002 à 19:05:46  profilanswer
 

n°274095
youdontcar​e
Posté le 20-12-2002 à 20:05:38  profilanswer
 

budweiser a écrit :

j ai reussi a faire en sorte que lorsqu'on passe sur une image, un menu correspondant s affiche dans un calque.

tu récupères sûrement ton calque avec :
 
var calque = document.getElementById('nomDuCalque';);
 
pour le cacher, il faut changer sa propriété css display à none :
 
calque.style.display = 'none';
 
setTimeout() est une fonction js qui prend en argument une commande et le temps à attendre (en millisecondes) avant de l'éxécuter, donc
 
setTimeout("calque.style.display = 'none'", 5000);

n°274136
Profil sup​primé
Posté le 20-12-2002 à 21:38:22  answer
 

je suis super ravi que tu me repondes mais ca va un peu vite
je suis ultra debutant
je monte mes scripts avec dremanwaever, avec lequel je bosse a la fois en graphique et avec le code pour mieu saisir...
 
en fait mes calques sont cachés.
 
et c un Onmouseover qui les fait apparaitre en passant sur les images.
 
je comprend donc pas ou je dois placer le  
setTimeout("calque.style.display = 'none'", 5000);
 

n°274143
youdontcar​e
Posté le 20-12-2002 à 21:43:46  profilanswer
 

je ne connais pas dreamweaver. tu as moyen de mettre ta page qq part sur le net ?

n°274150
Profil sup​primé
Posté le 20-12-2002 à 21:48:24  answer
 

ca roule (c vraiment sympa)
bouge po

n°274155
Profil sup​primé
Posté le 20-12-2002 à 21:52:58  answer
 

voilà
 
http://membres.lycos.fr/chimouche/test/navig.htm
 
je t ai foutu la page
(dessus n apparait que le menu sur lekel je bosse)
 
je n ai laissé que les scripts d apparition des calques.
 
me reste juste a definir un temps donné (genre 3 sec d apparation)
 
et le fait qu ils se masquent si on clique ailleurs.
 
a tout de suite  :jap:  :jap:  :)

n°274170
youdontcar​e
Posté le 20-12-2002 à 22:19:40  profilanswer
 

tu as donc le code d'apparition lorsque la souris est sur la balise (mouse over) :
 
onMouseOver="MM_showHideLayers('ClubLayer','','show';)"  
 
lorsque la souris quitte (mouse out), tu remplace le paramètre 'show' par 'hide' pour le cacher :
 
onMouseOut="MM_showHideLayers('ClubLayer','','show';)"  
 
pour mettre un délai, tu utilises setTimeout comme indiqué plus haut : le même code, le délai en ms :
 
onmouseout="setTimeout('MM_showHideLayers(\'ClubLayer\',\'\',\'hide\';)', 5000)"
 
pour que le menu se cache sans avoir à enlever la souris, tu le mets directement dans onmouseover :
 
onMouseOver="MM_showHideLayers('ClubLayer','','show';); setTimeout('MM_showHideLayers(\'ClubLayer\',\'\',\'hide\';)', 5000)"  
 
si la souris va sur un autre élément du menu, il faut que tu caches tous les autres menus possiblement ouverts. tu recopies le code de fermeture pour tous les layers :
 
onMouseOver="MM_showHideLayers('ClubLayer','','show';); MM_showHideLayers('CompetitionLayer','','hide';); .... et tous les autres layers à fermer"  
 
etc.
 
tout ça c'est _extrèmement_ chiant. tu risques d'avoir pas mal d'emmerdes avec les timers & co. comme tu débutes, concentre-toi plutôt sur le _contenu_ de ton site.


Message édité par youdontcare le 20-12-2002 à 22:20:21
n°274178
Profil sup​primé
Posté le 20-12-2002 à 22:31:13  answer
 

merci bcp c tres precis comme reponse.
 
a vrai dire, le contenu de mon site est deja pret.
j avais articulé tout ca avec des frames, mais je trouvais ca chiant et tout le monde me les deconseillais.
 
j en suis donc arrivé la, et uen idée de menu comme celle que tu as vu, qui se placera au centre de mon header graphique, les pages evoluant en dessous.
 
tu me dis que ca va etre compliqué, si j insere comme tu me le dis ca ne va pas fonctionner ? (kitte a prendre le temps)

n°274183
youdontcar​e
Posté le 20-12-2002 à 22:37:13  profilanswer
 

>> a vrai dire, le contenu de mon site est deja pret.
 
tant mieux ;)
 
>> j avais articulé tout ca avec des frames, mais je trouvais ca chiant et tout le monde me les deconseillais.
 
yep, très souvent frames = mal.
 
>> tu me dis que ca va etre compliqué, si j insere comme tu me le dis ca ne va pas fonctionner ? (kitte a prendre le temps)
 
si, ça va rouler, mais c'est chiant à faire et chiant à maintenir. et il y a un petit bug sournois : si tu passes la souris sur le menu, il sera désactivé dans les 5 secondes quoiqu'il arrive. quitte pendant 2 secondes, reviens dessus tout de suite, il reste 3 secondes avant qu'il disparaisse. bref, le genre de code casse-couilles et qui n'apporte pas grand chose.

n°274185
Profil sup​primé
Posté le 20-12-2002 à 22:39:56  answer
 

la je viens t inclure tes codes mais ca marche pas.
 
je me retrouve avec cette ligne pour le texte CLUB par ex
 
onMouseOver="MM_showHideLayers('ClubLayer','','show';); setTimeout('MM_showHideLayers('ClubLayer','','hide';)', 5000" onMouseOut="setTimeout('MM_showHideLayers('ClubLayer','','hide';)',5000)">Club</div></td>
 
mais le truc ne se barre pas  :sweat:

mood
Publicité
Posté le 20-12-2002 à 22:39:56  profilanswer
 

n°274187
Profil sup​primé
Posté le 20-12-2002 à 22:43:49  answer
 

youdontcare a écrit :

>>
 

Citation :

si, ça va rouler, mais c'est chiant à faire et chiant à maintenir. et il y a un petit bug sournois : si tu passes la souris sur le menu, il sera désactivé dans les 5 secondes quoiqu'il arrive. quitte pendant 2 secondes, reviens dessus tout de suite, il reste 3 secondes avant qu'il disparaisse. bref, le genre de code casse-couilles et qui n'apporte pas grand chose.


 
ok en effet, c peut etre un peu compliqué sans etre forcement utile je vois.
 
dans ce cas je devrais peut etre me concentrer sur le fait que tous les autres calques se cachent quand j en demasque un autre...?
je vais me mettre la dessus que le truc fonctionne. je verrais apres si je fous un chrono ou pas.

n°274188
youdontcar​e
Posté le 20-12-2002 à 22:46:39  profilanswer
 

copiecolle ... tout caractère est là pour une raison :
 

youdontcare a écrit :

onmouseout="setTimeout('MM_showHideLayers(\'ClubLayer\',\'\',\'hide\';)', 5000)"


 
lorsque le navigateur détecte le onmouseout, il va lire le code contenu entre guillemets ("..." ) ou apostrophes("..." ). de même, le setTimeout va lire le code qu'on lui passe en premier paramètre :  
 
MM_showHideLayers('ClubLayer','','hide';)"  
 
qu'on doit également mettre entre guillemets ou apostrophes. si tu écris juste
 
onmouseout="setTimeout('MM_showHideLayers('ClubLayer','','hide';)', 5000)"
 
setTimeout va croire que le code qu'on lui passe s'arrête à la seconde apostrophe :
 
'MM_showHideLayers('
 
soit pas grand chose. pour cela on met un \ devant qui lui dit de considérer l'apostrophe comme un caractère de la chaîne et non pas un caractère terminateur.
 
si tu ne suis pas, copie colle !

n°274195
Profil sup​primé
Posté le 20-12-2002 à 22:55:38  answer
 

merci bcp
j avais juste a copier je me compliquais la vie a trier pardon
 
la je me suis mis sur le fait qu il degage tous les autres calques...
 
apres je me remet sur le settimeout  ;)  
 
merci encore  :jap:  :jap:  :jap:

n°274210
Profil sup​primé
Posté le 20-12-2002 à 23:17:47  answer
 

c encore moi... :ange:  
 
j ai toujours un ti probleme
 
http://membres.lycos.fr/chimouche/test/navig.htm  
 
si tu mattes bien, quand j inclue ton code, bah y a plus rien marche (je parle pour le menu CLUB)
clublayer s affiche pas
ca ne degage meme pas les autres calques.
 
c encore mon code qu a un prob ?

n°274366
youdontcar​e
Posté le 21-12-2002 à 06:55:28  profilanswer
 

chez moi ça marche ... tu as corrigé depuis ton message ?

n°274373
Profil sup​primé
Posté le 21-12-2002 à 10:32:38  answer
 

:hello:  
 
ouai j'ai corrigé.
en fait ca marche bien.
par contre, je ne me suis pas attardé sur le settimeout sur lequel je me remettrais plus tard, apres avoir testé la navig  ;)  
 
a bientot. merci encore  :jap:  
 


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

  [JS] (rollover) comment afficher un calque pendant n secondes ????

 

Sujets relatifs
[VC++] Afficher ou cacher un controle ?[open gl]comment afficher un objet qui est dans un fichier 3D s max?
Comment faire pour empêcher un message d'erreur de s'afficher ????[CSS]Changement de couleur des liens on rollover ?
Forcer le calque conteneur à s'agrandir... ? codes et url added !Comment afficher le titre d'une chanson d'un cd ??
[php] recuperer l adresse ip du visiteur et l afficher[php] changer textbox en listbox pour afficher des valeurs a modifier
debutant : meilleur facon d afficher une matrice[Visual C++] Clist : afficher le nom complet d'un élément
Plus de sujets relatifs à : [JS] (rollover) comment afficher un calque pendant n secondes ????


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