Page 1 of 1

[Solved] display current submenu and hide when hovering over others

Posted: Fri Aug 08, 2008 8:19 pm
by rrochelle
Dear CMSMS community,

I use: CMSMS 1.4 "Jamaica", with the (slightly customized) "CSSMenu top + 2 columns" Template.

I have a horizontal menu which has horizontically arranged submenu items bolow. These submenu items are showing when hovering with the cursor over the associated main menu item. This is the part that works fine for me.

Now I would like to have the current or associated submenu displayed initially but when hovering over other main menu items the current page submenu should not be displayed. However, when not hovering over other menu items, the current submenu should be displayed again.

How can I do this?

Is there a way to tell the current submenu to hide when hovering over the other main/submenu items?

I would highly appreciate any hint!

Cheers, rrocchelle


Btw, here is how the menu is embedded in the template:

Code: Select all

{* Start Navigation *}
      <div id="menu_vert">
         <h2 class="accessibility">Navigation</h2>
         {menu template='cssmenu.tpl' number_of_levels='2'}
      <hr class="accessibility" />
      </div>
      {* End Navigation *}
Here is the CSS code I am currently using:

Code: Select all

/* Horizontal menu for the CMS CSS Menu Module */
/* by Alexander Endresen */

#menu_vert {
   margin-left: 1px;
   margin-right: 1px;
}

/* The wrapper clears the floating elements of the menu */

/* Fix for Opera 8 */
.clearb { clear: both; }
#menuwrapper { 
   /* Fix for Opera 8 */ 
   /*   overflow: hidden;  */ 
   background-color: #BE0926;
   width: 100%;
}

/* Set the width of the menu elements at second level. Leaving first level flexible. */
#primary-nav li li { 
}


/* Unless you know what you do, do not touch this */ 
#primary-nav, #primary-nav ul { 
   list-style: none; 
   margin: 0px; 
   padding: 0px; 
}
#primary-nav ul { 
   position: absolute; 
   top: auto; 
   display: none; 
}
#primary-nav ul ul { 
   margin-top: 1px;
   margin-left: -1px;
   left: 100%; 
   top: 0px; 
}
	
#primary-nav li { 
   margin-left: -1px;
   float: left; 
}
#primary-nav li li { 
   margin-left: 0px;
   margin-top: -1px;
   float: left; 
   position: relative; 
}

/* Styling the basic apperance of the menu elements */
#primary-nav a { 
   display: block; 
   margin: 0px; 
   padding: 5px 10px; 
   text-decoration: none; 
}
#primary-nav a.menuparent {
   color: #BE0926;
   background-color: white;
}

#primary-nav li a { 
   border-right: 1px solid #BE0926;
   border-left: 1px solid #BE0926;
}
#primary-nav li li a { 
   border: 1px solid #C0C0C0;
}	
#primary-nav li, #primary-nav li.menuparent { 
   background-color: #FFFFFF; 
}

/* Styling the basic apperance of the active page elements (shows what page in the menu is being displayed) */

#primary-nav li.menuactive { 
   color: white;
   background-color: #BE0926;
}

#primary-nav a.menuactive {
   color: white;
   background-color: #BE0926;
}

/* Styling the basic apperance of the menuparents - here styled the same on hover (fixes IE bug) */
#primary-nav ul li.menuparent, 
#primary-nav ul li.menuparent:hover, 
#primary-nav ul li.menuparenth,
#primary-nav a.menuparent:hover { 
}

/* Styling the apperance of menu items on hover */

#primary-nav li:hover, 
#primary-nav li.menuh, 
#primary-nav li.menuparenth, 
#primary-nav li.menuactiveh,
#primary-nav a.menuparent:hover { 
   color: #FFFFFF;
   background-color: #BE0926; 
}


/* The magic - set to work for up to a 3 level menu, but can be increased unlimited */

/* 
just add 
#primary-nav li:hover ul ul, 
#primary-nav li.menuparenth ul ul ul,
for fourth level 
*/
#primary-nav ul, 
#primary-nav li:hover ul, 
#primary-nav li:hover ul ul, 
#primary-nav li.menuparenth ul, 
#primary-nav li.menuparenth ul ul { 
   display: none; 
}


/* add 
#primary-nav ul ul ul li:hover ul, 
#primary-nav ul ul ul li.menuparenth ul,
for fourth level
*/
#primary-nav li:hover ul, 
#primary-nav ul li:hover ul, 
#primary-nav ul ul li:hover ul, 
#primary-nav li.menuparenth ul, 
#primary-nav ul li.menuparenth ul, 
#primary-nav ul ul li.menuparenth ul { 
   display: block; 
}


/* IE Hacks */
#primary-nav li li { 
   float: left; 
   
}
#primary-nav li li a { 
   height: 1%; 
}

Re: display current submenu and hide when hovering over others

Posted: Fri Aug 08, 2008 10:57 pm
by Dr.CSS
See this is the kind of thing I could tell you right off if i had a link...

But basically you give your second level "ul" a background color/image...

Re: display current submenu and hide when hovering over others

Posted: Sat Aug 09, 2008 11:02 am
by rrochelle
Mark,

thanks for your kind support. I had the installation running locally and just uploaded it to provide a link as I am not quite sure if I understand your solution yet.

[link removed]

Cheers,
rrochelle

Re: display current submenu and hide when hovering over others

Posted: Sat Aug 09, 2008 11:19 am
by dowoam
Hi rrochelle,

I think, you'llget it display by giving the menuactive element a "display:block".

The problem will be, to hide this aktive menu again bei hovering an other first level element.

greetings
Dirk

Hope, I understood your problem right
???

Iss ja ne deutsche Seite.  ;D
cool!
May you contact me via PM to solve in German language?

Re: display current submenu and hide when hovering over others

Posted: Sat Aug 09, 2008 9:12 pm
by Dr.CSS
Your looking for something like this, not exactly but with the background changing?...

http://multiintech.com/cmsmsdemo/