Javascript Menu Examples by Deluxe-Menu.com
Javascript Menu Examples

Menu Screenshots

Javascript Menu Examples Context Menu Script

Features

High Performance
  • AJAX menu loading - loads web menu data from the server "on-the-fly".
  • Commonly loads quicker than other html page elements
  • UL/LI items structure
  • Runs well with an unlimited number of submenus and items
Compatibility              
  • Full cross-browser compatibility including IE, Netscape, Mozilla, Opera, Firefox, Konqueror and Safari on Windows, Mac OS and Linux
  • Menu can be populated from a database using ASP, PHP, etc.
  • Search engine friendly
  • Support for any doctypes
  • Fits for secure sites
  • Section 508 compliant
Drop Menu Links Javascript Menu Examples
Seamless Integration
  • Cross-frame support - menus work on frameset-based pages
  • Visible over flash, select boxes, iframes, java applets
  • Multiple menus on the same page
  • Amicable to other scripts and css styles
  • Any HTML code can be used inside menu items
Unrivalled Features
  • Scrollable, dragable, floating, right-click menus
  • Keyboard navigation - press Ctrl+F2 to enter the menu
  • Unique Java Script API for altering menu "on-the-fly", without page reloading
  • AJAX technology - loads menu data from the server "on-fly and on-demand".
  • Search feature - add the search area in the menu and type symbols. The found words will be higlighted.
  • Sound support!
Easy Setup
  • De Luxe Tuner. GUI interface to create your javascript menu examples menus easily and in no time
  • Sensible menu parameters for manual editing



2.0 Buttons by Web-Buttons.com v3.0.0

Javascript Menu. DHTML Menu.

  • Submenus can be shown in 4 ways: - From from left to right + upwards and also left to right. - From right to left and also from right to left + upwards (e.g. for right-to-left languages).
  • Use images for icons, backgrounds of submenus and items. Using images you can create menus entirely based on graphics.
  • Create both horizontal and vertical menus and submenus with any amount of menus on one page.
  • Insert any HTML code inside the menu item - be it a form or a picture, a flash-object or a text. This ability allows you to create various menus of any complexity.

Recent Questions

Q: Couple last questions. I have 25 icons (images) on one page. Each image needs it's own popup menu. Obviously I now have the first one working. How and where do I define IDs number 2-24 ? Does each icon need it's own "source_" file?

Also, where is it defined that the popup menu is ID 1 ?


A: > Also, where is it defined that the popup menu is ID 1 ?
Each menu has ID. The ID's number starts with 0.

So, when you have several data files on your page you have such ID's:

<script type="text/javascript" language="JavaScript1.2" src="menu-top.js"></script> // ID - 0

<script type="text/javascript" language="JavaScript1.2" src="source_pop.js"></script> // ID - 1

<script type="text/javascript" language="JavaScript1.2" src="source_pop1.js"></script> // ID - 2

<script type="text/javascript" language="JavaScript1.2" src="source_pop2.js"></script> // ID - 3

<script type="text/javascript" language="JavaScript1.2" src="source_pop3.js"></script> // ID - 4

and so on.

> I have 25 icons (images) on one page. Each image needs it's own popup menu.
If you want to have different Popup menus (there color, item, text,font and so on) you should create 25 different .js files with yourparameters. And call them from your page, for example:

<SCRIPT language=JavaScript1.2 src="source_pop.js" type=text/javascript></SCRIPT>
<SCRIPT language=JavaScript1.2 src="source_pop1.js" type=text/javascript></SCRIPT>
<SCRIPT language=JavaScript1.2 src="source_pop2.js" type=text/javascript></SCRIPT>
...
<SCRIPT language=JavaScript1.2 src="source_pop24.js" type=text/javascript></SCRIPT>

If you have different item text only you can use one
<SCRIPT language=JavaScript1.2 src="source_pop.js" type=text/javascript></SCRIPT>
file. But you should delete the following code:

  var menuItems = [

["Next","testlink.htm"],
["Prev","testlink.htm"],
["Close","testlink.htm"],
];

dm_init();

and move it to the html page:

<body>
...
<SCRIPT language=JavaScript1.2 src="source_pop.js" type=text/javascript></SCRIPT>
<script type="text/javascript"> //first popup menu ID - 1
  var menuItems = [

["Next","testlink.htm"],
["Prev","testlink.htm"],
["Close","testlink.htm"],
];

dm_init();
</SCRIPT>
<script type="text/javascript"> //second popup menu ID - 2
  var menuItems = [

["Text","testlink.htm"],
["Text1","testlink.htm"],
["Text2","testlink.htm"],
];

dm_init();
</SCRIPT>
<script type="text/javascript"> //third popup menu ID - 3
  var menuItems = [

["New_Text","testlink.htm"],
["New_Text1","testlink.htm"],
["New_Text2","testlink.htm"],
];

dm_init();
</SCRIPT>
...
<script type="text/javascript"> //twenty fourth popup menu ID - 3
  var menuItems = [

["New","testlink.htm"],
["New","testlink.htm"],
["New","testlink.htm"],
];

dm_init();
</SCRIPT>

<img src="testimage.gif" width=200 onClick="return dm_popup(1, 1000, event);" style="cursor: hand;">
<img src="testimage.gif" width=200 onClick="return dm_popup(2, 1000, event);" style="cursor: hand;">
<img src="testimage.gif" width=200 onClick="return dm_popup(3, 1000, event);" style="cursor: hand;">
...
<img src="testimage.gif" width=200 onClick="return dm_popup(24, 1000, event);" style="cursor: hand;">
...
</body>



Q: I am totally confused by this now but I have 2 data files - one for a menu bar going horizontal and one going vertical both containing the same information. But even though the content is the same, the layout is different.

You will see that on the horizontal menu,

Fleet
Financce
CPC Cards
Cashire

These are listed correctly under each other but on the vertical one, the layout differs.


A: You should write your parameters more carefully.
See, now you have

menuItems = [
["About us","javascript:alert('Coming Soon')", , , ,"" ,0 , , , ],
   ["|||Organisation Chart","javascript:alert('Coming Soon')", , , ,"" ,1, , , ],

First you have the 1-st level of menu items then at once 4-th. It isnot right. You should write the number of your Individual Style in ""also.

See, how you should write your menuItems:

menuItems = [
["About us","javascript:alert('Coming Soon')", , , ,"" ,"0" , , , ],
 ["|Organisation Chart","javascript:alert('Coming Soon')", , , ,"","1", , , ],
 ["|Who's Who?","/k6intranet2.nsf/PageTitleLookup/Who's Who?OpenDocument", , , ,"" ,"1", , , ],
 ["|Contact Details","javascript:alert('Coming Soon')", , , ,"" ,"1", , , ],
["How To?","javascript:alert('Coming Soon')", , , ,"" ,"0", , , ],
 ["|Fleet","javascript:alert('Coming Soon')", , , ,"" ,"1", , , ],
   ["||Hire a Vehicle","/k6intranet2.nsf/PageTitleLookup/Hire a Vehicle?OpenDocument", , , ,"" ,"1", , , ],
   ["||Report an Accident","/k6intranet2.nsf/PageTitleLookup/How to report an accident?OpenDocument", , , ,"" ,"1", , , ],
   ["||Report a Breakdown","/k6intranet2.nsf/PageTitleLookup/Report a Breakdown?OpenDocument", , , ,"" ,"1", , , ],
 ["|Finance Admin","javascript:alert('Coming Soon')", , , ,"" ,"1", , , ],
   ["||Capitalise an Asset","/k6intranet2.nsf/PageTitleLookup/capitalise an asset?OpenDocument", , , ,"" ,"1", , , ],
   ["||Pay your Personal Calls on Mobile Phone Bills","/k6intranet2.nsf/PageTitleLookup/Pay your personal calls on mobile phone bills?OpenDocument", , , ,"" ,"1", , , ],
   ["||Request a credit to be raised","javascript:alert('Coming Soon')", , , ,"" ,"1", , , ],
 ["|CPC Cards","javascript:alert('Coming Soon')", , , ,"" ,"1", , , ],
   ["||Request a new CPC user","/k6intranet2.nsf/PageTitleLookup/request a new cpc user?OpenDocument", , , ,"" ,"1", , , ],
   ["||Report a Lost/Stolen CPC Card","/k6intranet2.nsf/PageTitleLookup/Report a lost or stolen card?OpenDocument", , , ,"" ,"1", , , ],
   ["||Enquire about a general CPC query","/k6intranet2.nsf/PageTitleLookup/enquire about a general cpc query?OpenDocument", , , ,"" ,"1", , , ],
 ["|Cashier","javascript:alert('Coming Soon')", , , ,"" ,"1", , , ],
   ["||Request a Cashbook Manual Payment","/k6intranet2.nsf/PageTitleLookup/Request a Cashbook Manual Payment?OpenDocument", , , ,"" ,"1", , , ],
   ["||Request a Cashbook BACS Payment","/k6intranet2.nsf/PageTitleLookup/Request a cashbook Bacs payment?OpenDocument", , , ,"" ,"1", , , ],
["Useful Information","javascript:alert('Coming Soon')", , , ,"" ,"0" , , , ],
 ["|Month End Timetable 2007","javascript:alert('Coming Soon')", , , ,"" ,"1", , , ],
 ["|Month End Year to Date Results","javascript:alert('Coming Soon')", , , ,"" ,"1", , , ],
   ["||Coming Soon...","javascript:alert('Coming Soon')", , , ,"" ,"1", , , ],
["Finance Focus","javascript:alert('Coming Soon')", , , ,"" ,"0" , , , ],
 ["|Coming Soon...","javascript:alert('Coming Soon')", , , ,"" ,"1", , , ],
["Coming Soon","javascript:alert('Coming Soon')", , , ,"" ,"0", , , ],
];

dm_init();


Q: When doing a multi-frame frameset (1 top frame, 2 bottom frames) like this:

<frameset ID="frames" ONLOAD="getBottom()" ROWS="50, *" BORDER="0" FRAMEBORDER="no" FRAMESPACING="0">
   <frame NAME="frmTop" SRC="top.htm" MARGINHEIGHT=0 MARGINWIDTH=0 SCROLLING=NO NORESIZE FRAMEBORDER="0" />
    <frameset ID="bottomFrames" cols="171,*">
     <frame name="frmLeft" src="left.htm" MARGINHEIGHT=0 MARGINWIDTH=0 SCROLLING=NO NORESIZE FRAMEBORDER="0"/>
     <frame name="frmMain" MARGINHEIGHT=0 MARGINWIDTH=0 SCROLLING=NO NORESIZEFRAMEBORDER="0" />
    </frameset>
</frameset>


And using the dm_frameinit like this:
dm_initFrame("[object]", 0, 2, 0);

it works fine in IE -> the menus are displayed exactly under the text and in the bottom right frame.

However, in Firefox, the menu drop down is displayed to the right of the top menu text, and exactly the number of pixels as the width of the left frame.

Perhaps there needs to be some FireFox checking to fix this?
Can you help me with that?


A: The problem is in a structure of your frameset.
Mozilla browsers can't determine absolute coordinates for a frame, sosubmenus drop down with an offset.

You should create the following frameset structure:

 --|------------
   | menu
 --|------------
   |
   | submenus
   |

Now a top row has 2 columns and all browsers can determine awidth of the 1st column in the second row.


Q: I replaced the code you suggested and I downloaded the current version of Deluxe-Tuner. I also removed the Javascript roll-overs I had elsewhere on the page and created the text.

I still get 'Error on page' when I hover over the first java scrolling menu item.

Please help! I need to buid this site out by Monday.

A: Now you have several errors in your data file:

  var menuBackColor="f9f9ec";

You should write:
  var menuBackColor="#f9f9ec";

The following parameters cannot be empty:
  var menuBorderWidth="0";
  var itemBorderWidth="0";

It is not correct to write the java scrolling menu parameter in the following way:
  var itemBorderStyle=["1px","1px"];

You should write:
  var itemBorderStyle=["none","none"];

If you want to add borders in the subitems you should write:
  var itemBorderWidth="1";
  var itemBorderColor=["#c59d1f","#c59d1f"];
  var itemBorderStyle=["solid","solid"];

And to remove border from the top items you should create Individualstyle and assign it to the top items:
  var itemStyles = [
["itemBorderWidth=0","itemBorderStyle=none,none"],
];

["","", "/images/nav_OFF_01.gif", "/images/nav_ON_01.gif", "", "","0", "", "", "", "", ], //assign style 0
["","", "/images/nav_OFF_02.gif", "/images/nav_ON_02.gif", "", "", "0", "", "", "", "", ], //assign style 0
...