Results 1 to 10 of 10

Thread: using the "nested_side_bar_menu" multiple times

  1. #1
    Join Date
    Feb 2011
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default using the "nested_side_bar_menu" multiple times

    Hello,
    i'm trying to use this menu: http://www.dynamicdrive.com/style/cs...side_bar_menu/

    I need it to appear 4 times, with different lists, side by side on the same page.
    But if I do that, in IE7, the sub menus are hidden behind the menu located on the right.

    How to solve this so that the sub menu are always on the top?

    Thanks a lot.

  2. #2
    Join Date
    Oct 2009
    Posts
    845
    Thanks
    14
    Thanked 189 Times in 188 Posts

    Default

    you could give the menus and sub menus descending z-index from left to right.
    Post a link to your page if you are having trouble with it

  3. #3
    Join Date
    Feb 2011
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    I tried that but it doesn't work.

    So if my first is <div class="sidebarmenu" style="z-index: 4;">
    and then the 2nd is <div class="sidebarmenu" style="z-index: 3;">
    then the 3rd is <div class="sidebarmenu" style="z-index: 2;">
    the last <div class="sidebarmenu" style="z-index: 1;">

    it doesn't work.

  4. #4
    Join Date
    Feb 2011
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts

  5. #5
    Join Date
    Oct 2009
    Posts
    845
    Thanks
    14
    Thanked 189 Times in 188 Posts

    Default

    Try this
    Code:
    /*Sub level menu items */
    .sidebarmenu ul li ul{
    position: absolute;
    width: 170px; /*Sub Menu Items width */
    top: 0;
    visibility: hidden;
    z-index:100;
    }

  6. #6
    Join Date
    Feb 2011
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Sadly, I already tried that.
    I uploaded the html file in which you can try if needed. All the code is in that file.
    Thanks a lot for trying... I'm really confused about this.

  7. #7
    Join Date
    Oct 2009
    Posts
    845
    Thanks
    14
    Thanked 189 Times in 188 Posts

    Default

    Strange, it works on my pc with this:
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title> 
    
    <style type="text/css">
    
    .sidebarmenu ul{
    margin: 0;
    padding: 0;
    list-style-type: none;
    font: bold 13px Verdana;
    width: 160px; /* Main Menu Item widths */
    border-bottom: 1px solid #ccc;
    z-index:1;
    }
     
    .sidebarmenu ul li{
    position: relative;
    }
    
    /* Top level menu links style */
    .sidebarmenu ul li a{
    display: block;
    overflow: auto; /*force hasLayout in IE7 */
    color: #ef7f01;
    text-decoration: none;
    padding: 6px;
    border-bottom: 1px solid #778;
    }
    
    .sidebarmenu ul li a:link, .sidebarmenu ul li a:visited, .sidebarmenu ul li a:active{
    background-color: blue; /*background of tabs (default state)*/
    }
    
    .sidebarmenu ul li a:visited{
    color: #ef7f01;
    }
    
    .sidebarmenu ul li a:hover{
    background-color: #EEE;
    }
    
    /*Sub level menu items */
    .sidebarmenu ul li ul{
    position: absolute;
    width: 170px; /*Sub Menu Items width */
    top: 0;
    visibility: hidden;
    z-index:100;
    }
    
    .sidebarmenu a.subfolderstyle{
    background: url(right.gif) no-repeat 97% 50%;
    }
    
     
    /* Holly Hack for IE \*/
    * html .sidebarmenu ul li { float: left; height: 1%; }
    * html .sidebarmenu ul li a { height: 1%; }
    /* End */
    
    </style>
    
    <script type="text/javascript">
    
    //Nested Side Bar Menu (Mar 20th, 09)
    //By Dynamic Drive: http://www.dynamicdrive.com/style/
    
    var menuids=["sidebarmenu1","sidebarmenu2","sidebarmenu3","sidebarmenu4"] //Enter id(s) of each Side Bar Menu's main UL, separated by commas
    
    function initsidebarmenu(){
    for (var i=0; i<menuids.length; i++){
      var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul")
        for (var t=0; t<ultags.length; t++){
        ultags[t].parentNode.getElementsByTagName("a")[0].className+=" subfolderstyle"
      if (ultags[t].parentNode.parentNode.id==menuids[i]) //if this is a first level submenu
       ultags[t].style.left=ultags[t].parentNode.offsetWidth+"px" //dynamically position first level submenus to be width of main menu item
      else //else if this is a sub level submenu (ul)
        ultags[t].style.left=ultags[t-1].getElementsByTagName("a")[0].offsetWidth+"px" //position menu to the right of menu item that activated it
        ultags[t].parentNode.onmouseover=function(){
        this.getElementsByTagName("ul")[0].style.display="block"
        }
        ultags[t].parentNode.onmouseout=function(){
        this.getElementsByTagName("ul")[0].style.display="none"
        }
        }
      for (var t=ultags.length-1; t>-1; t--){ //loop through all sub menus again, and use "display:none" to hide menus (to prevent possible page scrollbars
      ultags[t].style.visibility="visible"
      ultags[t].style.display="none"
      }
      }
    }
    
    if (window.addEventListener)
    window.addEventListener("load", initsidebarmenu, false)
    else if (window.attachEvent)
    window.attachEvent("onload", initsidebarmenu)
    
    </script>
    
    </head>
    <body>
    <table id="mainTable" width="740" border="1" cellspacing="0">
      
      <tr>
        <td>
    	<div class="sidebarmenu">
    	<!-- Liens de la première colonne -->
    	<ul id="sidebarmenu1">
    		<li><a href="#">Pqsdfqsdfoms</a></li>
    		<li><a href="#">sddsfsdf</a></li>
    		<li><a href="#">sdqsdqDy</a>
    			<ul>
    				<li><a href="#">qsdQSDe</a></li>
    				<li><a href="#">VQSDFQSDF</a></li>
    				<li><a href="#">PubQSort</a></li>
    				<li><a href="#">QDoling</a></li>
    				<li><a href="#">Parqdg</a></li>
    			</ul>
    		</li>
    		<li><a href="#" target="_blank">BFGDSDFG</a></li>		
    		<li><a href="#" target="_blank">QQsdQSDs</a></li>
    		<li><a href="#" target="_blank">qsdfqsfd</a></li>
    	</ul>
    	</div>
    	</td>
        <td VALIGN="top">
    	<!-- Liens de la deuxième colonne -->
    	<div class="sidebarmenu">
    	<ul id="sidebarmenu2"  >
    		<li><a href="#">Pqsdfqsdfoms</a></li>
    		<li><a href="#">sddsfsdf</a></li>
    		<li><a href="#">sdqsdqDy</a>
    			<ul>
    				<li><a href="#">qsdQSDe</a></li>
    				<li><a href="#">VQSDFQSDF</a></li>
    				<li><a href="#">PubQSort</a></li>
    				<li><a href="#">QDoling</a></li>
    				<li><a href="#">Parqdg</a></li>
    			</ul>
    		</li>
    		<li><a href="#" target="_blank">BFGDSDFG</a></li>		
    		<li><a href="#" target="_blank">QQsdQSDs</a></li>
    		<li><a href="#" target="_blank">qsdfqsfd</a></li>
    	</ul>
    	</div>	
    	</td>
        <td VALIGN="top">
    	<!-- Liens de la troisième colonne -->
    	<div class="sidebarmenu">
    	<ul id="sidebarmenu3">
    		<li><a href="#menu4">Travel Booking</a>
    			<ul>
    				<li><a href="#">Intro</a></li>
    				<li><a href="#">Policy</a></li>
    				<li><a href="#">zthz</a></li>
    				<li><a href="#">hrzehr</a></li>
    			</ul>
    		</li>
    		<li><a href="#menu4">qdgqfgqfgqg</a></li>
    		<li><a href="#menu4">qsgqsdqsg</a>
    			<ul>
    				<li><a href="#">qgsqgq</a></li>
    				<li><a href="#">qsd</a>
    					<!--<ul>
    						<li><a href="#">Travel Expenses</a></li>
    						<li><a href="#">Admissible Expenses</a></li>
    						<li><a href="#">Compensation rules</a></li>
    					</ul>-->
    				</li>
    				<li><a href="#">qsdfqsdf</a></li>
    				<li><a href="#">qsdfqsdf</a></li>
    				<li><a href="#">qsdfqsf</a></li>
    				<li><a href="#">qsdfqsdf</a></li>
    			</ul>
    		</li>
    	</ul>
    	</div>
    	</td>
        <td class="noRightBorder" VALIGN="top">
    	<!-- Liens de la quatrième colonne -->
    	<div class="sidebarmenu">
    	<ul id="sidebarmenu4">
    		<li><a href="">qsdfqsdf</a></li>
    		<li><a href="" target="_blank">qsdfq</a></li>
    	</ul>
    	</div>
    	</td>
      </tr>
    </table>
    
    </body>
    </html>

  8. #8
    Join Date
    Feb 2011
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Hello, in fact, I have now detected that it is within internet explorer 7 that this does not work... exactly the only version in which it should work for me...

  9. #9
    Join Date
    Feb 2011
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Hello, I finally found a solution to have it working.

    I copied the entire css to have it 4 times for my 4 menus.

    I changed <div class="sidebarmenu"> to sidebarmenua, sidebarmenub, sidebarmenuc and sidebarmenud.
    As I copied my css, every sidebarmenu entry is replace by either sidebarmenua, sidebarmenub, sidebarmenuc and sidebarmenud

    Then, in my css, I added
    sidebarmenua{
    position: relative;
    z-index: 4000;
    }
    sidebarmenub{
    position: relative;
    z-index: 3000;
    }
    sidebarmenuc{
    position: relative;
    z-index: 2000;
    }
    sidebarmenud{
    position: relative;
    z-index: 1000;
    }

    and it works!

  10. #10
    Join Date
    Oct 2009
    Posts
    845
    Thanks
    14
    Thanked 189 Times in 188 Posts

    Default

    Great !

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •