Collapsible Outline Script by Deluxe-Menu.com
Collapsible Outline Script

Menu Screenshots

Collapsible Outline Script Web Page Menu Example

Features

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
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
Menu Using Java Script Samples Collapsible Outline Script
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
Cost Effective
Easy Setup
  • De Luxe Tuner. GUI interface to create your collapsible outline script 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.

  • Build right-click menus for your site. For this purpose you should appoint a peculiar method for the object you want. The current X,Y of the mouse pointer or your own ones can be used for the context menu.
  • Design menus absolutely based on CSS (Cascading Style Sheets). It is possible to apply the personal CSS styles for every elements of the menu.
  • When the submenu is bigger than the visible page area, the size of submenu will be automatically decreased. To view all the submenu items you do not need to use scrollbars or something like that - just put your mouse to the bottom of a submenu and it will be automagically scrolled! You can also define width and height for each submenu.

Recent Questions

Q: I cannot get the separator image to display in my dhtml right click menu. Is there a setting I am missing? I want to separate the main menu items with an image.

A: To add a separator you should

//--- Separators
  var separatorImage=""; //for subitems (top items in vertical dhtml right click menu)
  var separatorWidth="100%";
  var separatorHeight="3px";
  var separatorAlignment="right";
  var separatorVImage="separator.gif"; //for the top items (subitems items in vertical menu)
  var separatorVWidth="100%";
  var separatorVHeight="2px";
  var separatorPadding="";

You can create separators using menuItems (you can do it in DeluxeTuner, use "Add separator" button), for example:

  var menuItems = [
["item 1"],
["-"], // this item is separator
["item 2"],
];



Q: Is it possible set a menu item to pressed when a page is loaded when you have multiple drop down menus on the page?  

I have 2 menus side by side and I was able to set the pressed item with the JavaScript API as described in your FAQs but when I try to show an item as pressed  in a second menu on the same page, the corresponding item in the first menu shows as pressed. Is there a different function that I can use for this or a way to reset the menu ID in the second menu to start from where the first menu left off so I can use the same function?

A: See the first parameter in
dm_ext_setPressedItem (menuInd, submenuInd, itemInd, recursion)
function is index of the menu.

So, if you use several menus on the one page you should use differentmenuInd parameter.

For example you have:

<script type="text/javascript" src="menu/data1.js"></script> //menuInd=0
...
<script type="text/javascript" src="menu/data2.js"></script> //menuInd=1
...
<script type="text/javascript" src="menu/data3.js"></script> //menuInd=2
...
<script type="text/javascript" src="menu/data4.js"></script> //menuInd=3

So, for the second menu you should write:

dm_ext_setPressedItem (1, 2, 5)



Q: As a part-time webdeveloper I have gotten very interested in your product. I really appreciate a number of things

- it's very flexible
- it's very easy to work with
- examples nicely show the capabilities

But I have a couple of questions:

- When opening a menu, there is an option for keeping the menu-item that has been pressed hightlighed (so that the user can see what he/she pressed). Is it possible, programmatically, to decide when this highlighting should be removed? The scenario is that, when a menu-item is clicked the used might browse for a couple of pages within the context defined by the menu-item, but when the user leaves, the menu-item should no longer be highlighted. I will (programmatically) decide the context, but is it possible for me to interact with the menu, and for example decide explicitly which menu should be highlighted?
- Our design department would like the menu containing the elements: "Skovdrift, Juletreer, Skovrejsning, etc". Please notice that "Brende" is supposed to show a menu item that is hightlighted. Is is possible to create this menu such that it is dynamic and each item is text-based (and not based on two pictures for each menu-entry: hightlighted and not)? I've been wondering how to solve this problem, but I cannot figure out a solution. The problem that I is stuck at, is how organise this speciel "frame" around each menu-element. Something that be partly accomplished using "arrowImageMain", but that does not bring me all the way. Please notice that the menu-items might not have any sub-menu.


A: I suppose that you're saying about
  var pressedItem=-2;
Defines an item that will appear in the highlighted state
(-2 - normal mode, -1 - toggle mode is active, but highlighted item not defined, 0,1,2,3,... - # of pressed item including separators)

This parameter will not approach you.

You should set a pressed item using Javascript API:

function dm_ext_setPressedItem (menuInd, submenuInd, itemInd, recursion)

Sets a current pressed item.
menuInd - index of a menu on a page, >= 0.
submenuInd - index of a submenu, >= 0.
itemInd - index of an item, >=0.
recursion = true/false - highlight parent items.

But notice, to use dm_ext_setPressedItem() you should know ID of selected item and subitem.
You can't get this ID after you reload your page. That is why you should write your own code on PHP.


Q: I will build menu for several books’ Contents, each book is more than 100 lines and has links. I think if all the books’ contents in 1 *.JS file then it is TOO LOONG!!.
Can I break it down to 1 book for 1*.JS ? How?


A: You cannot divide your menuItems parameter.
You can only use one .js file for your menu parameters and the other.js file for your menuItems = [...];

But you can do it in two ways.

1) You can try to use several menus on the one page, for example:
param.js // file with menu parameters (all parameters before menuItems = [...];)
menu1.js // menuItems for "AC-DC", "ANLOG"
menu2.js // menuItems for "DIGITAL", "WinXP"
menu3.js // menuItems for "MS-Word", "MS-Excel"
In these menu files you should write
menuItems = [
...
];
dm_init();

Then you should install your menu in the following way

<script type="text/javascript" src="param.js"></script>
<table>
...
<script type="text/javascript" src="menu1.js"></script>
...
<script type="text/javascript" src="menu2.js"></script>
...
<script type="text/javascript" src="menu3.js"></script>

But it will be easier to use vertical menu in such case
  var isHorizontal=0;
  var smColumns=1;

2) You can also try to add some code, see the attached example.

In the first file (@MY books (Multiple Col.js) I write menuItems for the first item "AC-DC".
Notice that you should delete comma at the end of the last item
  var menuItems = [

["AC-DC","", , , , , , , , ],
 ["|@Book1","testlink.htm", , , , , , , , ],
...
 ["|@Book3","", , , , , , , , ],
   ["||CH02","", , , , , , , , ],
   ["||CH01","", , , , , , , , ] // delete comma at the end of the last item

];

In the second file (@MY books (1.js) you should write
menuItems = menuItems.concat(

[

["ANLOG","", , , , , , , , ],
 ["|@Book1","", , , , , , , , ],
 ["|@Book2","", , , , , , , , ],
 ["|@Book3","", , , , , , , , ] // delete comma at the end of the last item

]
);

In the third file (@MY books (2.js) you should write
menuItems = menuItems.concat(

[

["DIGITAL","", , , , , , , , ],
 ["|Item 1332","", , , , , , , , ],
["WinXP","", , , , , , , , ],
 ["|Item 1333","", , , , , , , , ],
["MS-Word","", , , , , , , , ],
 ["|Item 1334","", , , , , , , , ],
["MS-Excel","", , , , , , , , ],
 ["|Item 1335","", , , , , , , , ] // delete comma at the end of the last item
]
);

dm_init();

Notice that you should write dm_init(); function in the last file.

In the .html file you should write
...
<tr>
<script type="text/javascript" src="@MY books (Multiple Col.js"></script>
<script type="text/javascript" src="@MY books (1.js"></script>
<script type="text/javascript" src="@MY books (2.js"></script>
</tr>
I hope you understand me.