Probleme de onmouseover onmouseout avec gestion event.observe
cs_stooff
Messages postés15Date d'inscriptionlundi 30 avril 2007StatutMembreDernière intervention19 janvier 2010
-
1 avril 2009 à 16:20
cs_stooff
Messages postés15Date d'inscriptionlundi 30 avril 2007StatutMembreDernière intervention19 janvier 2010
-
1 avril 2009 à 19:37
Bonjour,
Voila mon problème pour ceux qui pourrait peut être me filer un ptit coup de main.
Je ne suis pas expert, j'apprend à la volée donc n'hésitez pas à me faire autant de remarque que nécessaire.
J'ai un menu vertical que j'essaye de faire fonctionner à l'identique d'un menu QuickMenu d'opencube (payant et pas donné en plus) que j'avais utilisé en attendant de le refaire ou de trouver sur le net en opensource (sans succès)
Donc me voici dans la galère avec les events onmouseover et onmouseout.
J'aimerais avoir une meilleur gestion des evenements afin de pouvoir afficher un sous menu au passage de la souris sur un des éléments du menu(div), le garder actif durant le temps de selection du lien dans la zone du sousmenu (ul), et l'enrouler au changement de zone d'un menu sur un autre(changement de div) ainsi que le fermer lorsque l'internaute quitte toutes les zones du menu (div des menu et ul des sous menu) et ainsi de suite.
J'espère avoir été clair, voici le code de la page.
<hr size="2" width="100%" />
<script type="text/javascript">
var Categories = ['societe','telechargement','concepts','marketing'];
function Expand_CurrentMenu(indic){
var CurrentCategorie = document.getElementById('menu_' + indic);
var CurrentSousCategorie = document.getElementById('conteneur_' + indic);
cs_stooff
Messages postés15Date d'inscriptionlundi 30 avril 2007StatutMembreDernière intervention19 janvier 2010 1 avril 2009 à 16:43
Merci de ta réponse Bul3, je regarde ca de suite.
Effectivement, en pure css c mieux si javascript est désactivé ou restreint, mais j'ai à gérer un slide de mes sous menu et ceci ne peut être fait qu'avec javascript, à moins de ne me tromper, ce qui est fort possible.
cs_stooff
Messages postés15Date d'inscriptionlundi 30 avril 2007StatutMembreDernière intervention19 janvier 2010 1 avril 2009 à 18:29
Sur les conseils de Bul3, j'ai refait l'arborescence CSS qui me faisait défaut.
Le résultat est désormais propre. Merci Bul3
Mais voici que je reviens à ma question principale, c'est à dire supplanter css par du javascript afin de réaliser un déroulement vertical de mes ul de sous menu, jutilise actuellement la propriété Effect.slideup et effect.slidedown de scriptaculous. Mais je n'arrive pas à passer par dessus css afin d'effectuer un déroulement et un enroulement propre.
Voici le nouveau code de la page :
<script type="text/javascript">
var Categories = ['societe','telechargement','concepts','marketing'];
function Expand_CurrentMenu(indic){
var CurrentCategorie = document.getElementById('menu_' + indic);
var CurrentSousCategorie = document.getElementById('conteneur_' + indic);
cs_stooff
Messages postés15Date d'inscriptionlundi 30 avril 2007StatutMembreDernière intervention19 janvier 2010 1 avril 2009 à 19:28
Si seulement c'était pour moi, je me ferais la même reflexion, mais c'est pour un client et donc je dois suivre ses exigences...
Il veut du dynamisme dans les menus par un deroulement et un enroulement visuel, non pas juste l'apparition sans transition provoqué par css.
Je l'ai déja réalisé pour un sous menu listant les catégories de produits, mais c'était vertical sans débordement sur un autre contenu (dans le cas actuel, du flash). Ce qui donne un bel effet de fluidité, il faut l'avouer.
cs_stooff
Messages postés15Date d'inscriptionlundi 30 avril 2007StatutMembreDernière intervention19 janvier 2010 1 avril 2009 à 19:37
Voila la source de mes ennui, ce fameux menu d'opencube. (Que je n'aurais jamais, Ô grand jamais du montrer à mon client !!!)
Testez le en local vous verrez bien le résultat, qui peux être beaucoup plus complexe au niveau de la gestion des effets de transitions (dommage que ce soit aussi cher à l'achat, plus de 200$ si je ne m'abuse pour un license pour un site)
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><title>QuickMenu Save Document</title><meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<!-- *** QuickMenu copyright (c) 2007, OpenCube Inc. All Rights Reserved.
-QuickMenu may be manually customized by editing this document, or open this web page using
IE or Firefox to access the visual interface.
-->
<!--%%%%%%%%%%%% QuickMenu Styles [Keep in head for full validation!] %%%%%%%%%%%-->
<style type="text/css">
/*!!!!!!!!!!! QuickMenu Core CSS [Do Not Modify!] !!!!!!!!!!!!!*/
.qmmc .qmdivider{display:block;font-size:1px;border-width:0px;border-style:solid;position:relative;z-index:1;}.qmmc .qmdividery{float:left;width:0px;}.qmmc .qmtitle{display:block;cursor:default;white-space:nowrap;position:relative;z-index:1;}.qmclear {font-size:1px;height:0px;width:0px;clear:left;line-height:0px;display:block;float:none !important;}.qmmc {position:relative;zoom:1;z-index:10;}.qmmc a, .qmmc li {float:left;display:block;white-space:nowrap;position:relative;z-index:1;}.qmmc div a, .qmmc ul a, .qmmc ul li {float:none;}.qmsh div a {float:left;}.qmmc div{visibility:hidden;position:absolute;}.qmmc .qmcbox{cursor:default;display:block;position:relative;z-index:1;}.qmmc .qmcbox a{display:inline;}.qmmc .qmcbox div{float:none;position:static;visibility:inherit;left:auto;}.qmmc li {z-index:auto;}.qmmc ul {left:-10000px;position:absolute;z-index:10;}.qmmc, .qmmc ul {list-style:none;padding:0px;margin:0px;}.qmmc li a {float:none}.qmmc li:hover>ul{left:auto;}#qm0 ul {top:100%;}#qm0 ul li:hover>ul{top:0px;left:100%;}
<!-- Create Menu Settings: (Menu ID, Is Vertical, Show Timer, Hide Timer, On Click ('all', 'main' or 'lev2'), Right to Left, Horizontal Subs, Flush Left, Flush Top) -->