Results 1 to 5 of 5

Thread: Help with tabs (mouseover) navigation menu

  1. #1
    Join Date
    Apr 2005
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Help with tabs (mouseover) navigation menu

    Hiya all

    I'm trying to use the below menu and think it's great and have customised it quite well
    link to DD's tabs navigation menu

    but I would like my submenus that open beneath to be aligned straight underneath the relevant mainmenu? Can this be done?

  2. #2
    Join Date
    Aug 2004
    Posts
    10,143
    Thanks
    3
    Thanked 1,008 Times in 993 Posts
    Blog Entries
    16

    Default

    There are a few ways to do this. The simpliest (though least flexible way) is simply to modify the HTML for a particular menu content to add a margin-left to it. For example:
    Code:
    submenu[1]='<div style="margin-left: 100px"><b><a href="http://freewarejava.com/applets/index.shtml">Applets</a> | <a href="http://freewarejava.com/tutorials/index.shtml">Tutorials</a> | <a href="http://freewarejava.com/javasites/index.shtml">Sites and Zines</a> | <a href="http://freewarejava.com/jsp/index.shtml">JSP</a></b></div>'
    Notice the <div style=margin-left: 100px"> code, which would indent this menu content 100px on the left side.

  3. #3
    Join Date
    Apr 2005
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Ta

    Thanks and that works well although how could I be able to do it so the submenu aligns perfectly to it's mainmenu automatically?

  4. #4
    Join Date
    Aug 2004
    Posts
    10,143
    Thanks
    3
    Thanked 1,008 Times in 993 Posts
    Blog Entries
    16

    Default

    Ok, I've modified the script quickly for the submenu to auto align with the link that triggers it. Changes are in red:

    <body>

    Code:
    <!--Links used to initiate the sub menus. Pass in the desired submenu index numbers (ie: 0, 1) -->
    <div id="linkscontainer"><a href="http://www.javascriptkit.com" onMouseover="showit(0, this)">JavaScript Kit</a> | <a href="http://freewarejava.com" onMouseover="showit(1, this)">Freewarejava</a></div>
    
    <!-- Edit the dimensions of the below, plus background color-->
    <ilayer width=400 height=32 name="dep1" bgColor="#E6E6FF">
    <layer name="dep2" width=400 height=32>
    </layer>
    </ilayer>
    <div id="describe" style="background-color:#E6E6FF;width:400px;height:32px" onMouseover="clear_delayhide()" onMouseout="resetit(event)"></div>
    
    
    <script language="JavaScript1.2">
    
    /*
    Tabs Menu (mouseover)- By Dynamic Drive
    For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
    This credit MUST stay intact for use
    */
    
    var submenu=new Array()
    
    //Set submenu contents. Expand as needed. For each content, make sure everything exists on ONE LINE. Otherwise, there will be JS errors.
     
    submenu[0]='<div id="mysubmenu"><b><a href="http://www.javascriptkit.com/cutpastejava.shtml">Scripts</a> | <a href="http://www.javascriptkit.com/javaindex.shtml">JS tutorials</a> | <a href="http://www.javascriptkit.com/javatutors/index.shtml">Advanced JS tutorials</a> | <a href="http://www.javascriptkit.com/java/">Applets</a> | <a href="http://www.javascriptkit.com/howto/">Web Tutorials</a></b></div>'
    
    submenu[1]='<div id="mysubmenu"><b><a href="http://freewarejava.com/applets/index.shtml">Applets</a> | <a href="http://freewarejava.com/tutorials/index.shtml">Tutorials</a> | <a href="http://freewarejava.com/javasites/index.shtml">Sites and Zines</a> | <a href="http://freewarejava.com/jsp/index.shtml">JSP</a></b></div>'
    
    //Set delay before submenu disappears after mouse moves out of it (in milliseconds)
    var delay_hide=500
    
    /////No need to edit beyond here
    
    var menuobj=document.getElementById? document.getElementById("describe") : document.all? document.all.describe : document.layers? document.dep1.document.dep2 : ""
    
    function showit(which, cur){
    clear_delayhide()
    thecontent=(which==-1)? "" : submenu[which]
    if (document.getElementById||document.all){
    menuobj.innerHTML=thecontent
    if (typeof cur!="undefined" && parseInt(cur.offsetLeft)>=0){
    var divoffset=document.getElementById("linkscontainer").offsetLeft
    document.getElementById("mysubmenu").style.marginLeft=cur.offsetLeft-divoffset+"px"
    }
    }
    else if (document.layers){
    menuobj.document.write(thecontent)
    menuobj.document.close()
    }
    }
    
    function resetit(e){
    if (document.all&&!menuobj.contains(e.toElement))
    delayhide=setTimeout("showit(-1)",delay_hide)
    else if (document.getElementById&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
    delayhide=setTimeout("showit(-1)",delay_hide)
    }
    
    function clear_delayhide(){
    if (window.delayhide)
    clearTimeout(delayhide)
    }
    
    function contains_ns6(a, b) {
    while (b.parentNode)
    if ((b = b.parentNode) == a)
    return true;
    return false;
    }
    
    </script>
    To be safe, you may just want to use the entire script above, then change the menu links to your own. Tested in FF1 and IE6 without problems.
    Last edited by ddadmin; 04-18-2005 at 08:03 PM.

  5. #5
    Join Date
    Apr 2005
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Thanks alot

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
  •