11548 sujets

JavaScript, DOM et API Web HTML5

Mesdammes, mesdemoiselles, messieurs, je viens vers vous car je suis en pleine élaboration d'un site internet et j'ai voulu me lancer dans des choses que je n'ai encore pas vu.

La première, c'est un menu un peu sophistiqué, à la façon YvesRocher ou Dr Ricaud.
Je suis parvenu à faire quelque chose de loin similaire. Je dis bien de loin. Mais il y a un évènement que je ne parviens pas à réaliser. En fait lorsque je passe ma souris sur le menu, il affiche bien le contenu de mon menu sous forme d'encart, mais si je quitte le survol de mon menu je ne parviens pas à le faire enlever cet encart. Le seul moyen que j'ai trouvé est de passer sur l'encart et quitter l'encart. Ca me gonfle, mais en même temps je suis pas un expert non plus.

J'ai vu que sur les dit sites d'exemple, ils utilisent une méthode bien ficelée avec des images que l'on affiche suivant des coordonnées bien précises, mais je suis pas assez calé pour faire cela. Alors si une âme charitable pouvait jeter un oeil à mon source et me dire ce qui cloche, vers quoi de dois m'orienter, ou si je dois définitivement laisser le dév web aux spécialistes, je lui serais gré de me mettre un petit post.

mon lien est ici
Merci d'avance, même pour les censures! Smiley biggol
Salut,

Alors si on parle bien des menus du genre "VISAGE", "CORPS", etc... la réponse à ton problème est assez simple : tu n'appelles jamais ta fonction MasqueSSMenu() en onMouseOut...

Donc ça donnera (par exemple pour le premier menu) :

<a onmouseover="javascript:AfficheSSMenu('0','','');onmouseout="javascript:MasqueSSMenu('0');" href="#">VISAGE</a>
je m'attendais à cette remarque, mais je l'ai déjà fais, et le menu disparait effectivement, mais je ne peux plus naviguer dedans. Puisque lorsque je veux naviguer dedans, je sors de mon espace menu "VISAGE" et donc s'exécute mon onmouseout().

Alors quelle est la méthode pour que celui ci reste affiché, quand je passe sur l'encart du menu? mettre le 'masquessmenu' dans le onmouseout de mon "VISAGE" ne va pas.

Comprends tu ce que je veux dire? Smiley murf

Merci pour ton post!
Pfff oui je suis grave, ça ne risque pas de marcher comme tu veux avec ma solution Smiley smile

Donc, soit tu rajoutes un timer (genre 500ms) pour appeler ta fonction masquessmenu() (avec un setTimeout) en onmouseout sur le menu, soit tu as aussi des solutions en CSS (voir sur le site de Stu Nicholls pour plein d'exemples).
Sinon je comprend pas bien pourquoi en onmouseout sur le div des sous-menu tu appelles ta fonction AfficheSSMenu() au lieu de masquessmenu() ?
Merci de ta réponse.

En fait, pourquoi j'ai mis Affiche au lieu de Masque, c'est simplement parce que j'ai un effet bizarre avec le Masque. En effet, le Masque serait plus logique, sauf que lorsque je le met, l'encart s'enlève une fois que je passe l'image de l'encart. Oui, c'est zarb, mais je ne trouve pas le pourquoi du comment. Quand je mets le MasqueSSMenu dans le OnMouseOut du div du sous menu, une fois que ma souris passe l'image pour atteindre les menus du genre Nettoyer, Entretien, Nourrir, hé bien l'encart disparait. Et si je ne met rien, l'encart ne disparaît plus. Si là dessus tu as une idée, je suis preneur, car c'est la seule chose qui me manque pour valider mon menu.

Merci encore de tes interventions.
lelapinou a écrit :
Quand je mets le MasqueSSMenu dans le OnMouseOut du div du sous menu, une fois que ma souris passe l'image pour atteindre les menus du genre Nettoyer, Entretien, Nourrir, hé bien l'encart disparait. Et si je ne met rien, l'encart ne disparaît plus. Si là dessus tu as une idée, je suis preneur, car c'est la seule chose qui me manque pour valider mon menu.

Je ne pense pas que cela soit relatif à l'image présente dans l'encart.
Essayes d'appeler la fonction depuis l'encart lui-même, et non pas depuis un div interne à l'encart, voir si ça change quelque chose :

<div id="menu0" onmouseout="javascript:MasqueSSMenu('0');">


D'ailleurs c'est un peu le bordel dans tes div Smiley smile Je ne vois pas l'intérêt d'utiliser une image de fond (back_menu.gif) pour créer une bordure ?? Du coup, t'as carrément un div juste pour ça... Bref, au lieu d'avoir 3 divs, tu ne pourrais en avoir qu'un seul, ce serait pas plus mal. Quant aux images dans cet encart (image d'illustration, et flèches) elles pourraient très bien être mise en image de fond en CSS, vu qu'elles n'ont aucune action dans la navigation.

J'ai l'impression que tu as construit ton site à l'ancienne, comme on faisait avec des <table>, non ? Smiley cligne
Il est fort probable que ma façon de développer soit obsolète et j'en suis conscient, mais j'ai pas énormément de temps pour renouveler mon auto-formation, alors je le fais au fure et à mesure que j'avance. Ok pour le div en trop, j'ai bien vu.

Par contre, même en éliminant les div et en insérant le MasqueSSMenu dans le div principal, cela me fait le même effet, dès que je passe l'image, l'encart disparait.

Mais je crois que je vais faire ce que tu dis, et me remettre le nez dans les bouquins. J'ai commencé à m'amuser avec le net il y a 5 ans, et je n'utilisait que les table, jusqu'au jour où j'ai entendu parler des Div, qui sont mieux, mais il est clair que j'ai pas les connaissances nécessaires pour m'attaquer à ce genre de choses sans me prendre des murs en pleine figure.

Merci. Smiley lol
Je me suis rendu compte que si je mets le MasqueSSMenu() dans le OnMouseOut du div du SSmenu, je me suis rendu compte que l'encart disparait, dès que je passe sur un lien. Aurais tu une idée là dessus.

Si je trouve le pourquoi du comment je serais sur la bonne voie, ce sera pas encore la fin, car je devrais encore résoudre la souci si je ne rentre pas dans l'encart menu, il ne disparait pas non plus.

Argh. J'ai été voir le site que tu m'as donnée, mais je n'ai pas trouvé de menu comme le mien, en vertical. Ce genre de menu se fait essentiellement horizontalement. Il fallait que je fasse différemment des autres, encore une fois.

toute fois, merci encore de tes interventions, et n'hésite pas si jamais tu as une idée. Smiley biggol
lelapinou a écrit :

Argh. J'ai été voir le site que tu m'as donnée, mais je n'ai pas trouvé de menu comme le mien, en vertical. Ce genre de menu se fait essentiellement horizontalement. Il fallait que je fasse différemment des autres, encore une fois.

T'as pas du bien regarder, il y a ce lien (parmi pas mal d'autres menus verticaux proposés) qui correspond plutôt pas mal à ce que tu cherches :
http://www.cssplay.co.uk/menus/vertical-list.html