Updated: Dec 17th, 10" (v1.5): Updated menu shadow to use CSS3 box shadows when the browser is FF3.5+, IE9+, Opera9.5+, or Safari3+/Chrome. Only .js file changed.
Description: Smooth Navigation Menu is a multi level, CSS list based menu powered using jQuery that makes website navigation a smooth affair. And that's a good thing given the important role of this element in any site. The menu's contents can either be from direct markup on the page, or an external file and fetched via Ajax instead. And thanks to jQuery, a configurable, sleek "slide plus fade in" transition is applied during the unveiling of the sub menus. The menu supports both the horizontal and vertical (sidebar) orientation.
Some noteworthy features- You can specify a delay before the sub menus appear and disappear when the mouse rolls over and out of them, respectively. The sub menus reposition themselves if too close to the window's right edges. And last but not least, the depth of the accompanying shadow can be customized, or removed altogether. Smooth we say!
Step 1: Insert the following code into the <head> section of your page:
The above code references a few external files, which by default you should upload to the same directory as the page itself (right click each file and select "Save As"):
Step 2: Add the below menu code to the BODY section of your page. It contains the markup for 1 horizontal menu and 1 vertical menu:
Each menu should consist of an outer DIV and a valid UL list contained inside it.
If you wish the menu content to reside in an external file on your server and dynamically added to your page(s), read the section "Putting the Menu contents in an external file" below.
Well, that's it for installation.
ddsmoothmenu.init()
and Menu content structure
Setting up a Smooth Navigational Menu on your page involves calling
ddsmoothmenu.init()
inside the HEAD section of your page:
ddsmoothmenu.init({
mainmenuid: "smoothmenu1", //menu DIV id
orientation: 'h', //Horizontal or vertical menu: Set to "h" or "v"
classname: 'ddsmoothmenu', //class added to menu's outer DIV
//customtheme: ["#1c5a80", "#18374a"],
contentsource: "markup" //"markup" or ["container_id",
"path_to_menu_file"]
})
where "smoothmenu1
" corresponds to the menu content's outermost DIV
on the page. Here's a description of each option:
Attribute | Description |
mainmenuid |
The ID of the menu's outermost DIV. If the menu contents are fetched via Ajax, then this ID should correspond to the outermost DIV that's within the external file. |
orientation |
Sets the orientation of the menu. Enter the
value "h" or "v" for a horizontal or vertical menu, respectively. Note
that the "classname " setting below must also be set
according to the "orientation " setting. |
classname |
Sets the CSS class name that gets applied to
the outermost DIV of the menu, effectively styling it. Based on the "orientation "
setting above, you want to enter the CSS class that correctly styles the
menu By default, "ddsmoothmenu " creates a horizontal menu
bar, while "ddsmoothmenu-v " creates a vertical one. Take a
look inside
ddsmoothmenu.css and
ddsmoothmenu-v.css. |
customtheme |
In general, customizing the menu's style and background colors
is done by editing the two CSS files of the script.
However, you can also modify the menu's background and hover background
color- on
a per page or per menu basis easily, by taking advantage of the "customtheme "
setting. To do so, uncomment (remove the // prefix) from
this setting and declare two CSS background values, one for the default state, the
other, when the mouse rolls over the menu items:customtheme: ["#1c5a80", "#18374a"], //override default menu CSS background values? Uncomment: ["normal_background", "hover_background"] This property is useful for quickly testing out color combinations without having to edit "ddsmoothmenu.css" each time. |
contentsource |
Enter "markup " if your
menu contents are directly inline on the page, or ["container_id",
"path_to_menu_file"] For more info on the later option, see "Putting the Menu contents in an external file and fetched using Ajax"
below. |
As far as the HTML markup of each menu, it should consist of an outer DIV plus a valid UL list inside it, such as:
<div id="smoothmenu1">
<ul>
<li><a href="http://www.dynamicdrive.com">Item 1</a></li>
<li><a href="#">Folder 0</a>
<ul>
<li><a href="#">Sub Item 1.1</a></li>
<li><a href="#">Sub Item 1.2</a></li>
</ul>
</li>
</ul>
</div>
Make sure the UL list is valid You can use W3C's validation service to quickly check your HTML list for incorrectly nested or unclosed tags.
Instead of the menu's content being direct markup on the page, you can instead put that HTML in an external file on your server and have the menu dynamically added to the B
Hi 30 Days readers! Michelle here with I DO invitations by michelle and I'm excited to share with you this DIY fabric and yarn tree I made.
What you [more]
If you are new to 30days, I host a linky party, my Pity Party every Friday. Thanks for linking up your ideas- I love visiting what you share.Image
The [more]
The Crafting Chicks asked me to be a part of their fun Thanks a Day Gratitude Challenge. Thanks chicks! I got to send over a thank you card. Instead of sending [more]
If you are new to 30days, I host a linky party, my Pity Party every Friday. Thanks for linking up your ideas- I love visiting what you share.
Today and tomorrow! [more]
Christmas Tree Stand Slipcover
Is your Christmas tree in need of a new wardrobe? Has it been wearing the same skirt since Clinton was in office? Let's ditch it for some nice new diggs shall [more]
the best Cornbread you'll ever eat
My mom made this recipe for me for the first time several years ago. It is literally the best cornbread recipe I've ever tasted. It's d e l i c i o u [more]
Copyright © 2012 · Nouveau Blog Design on Genius Framework· Blogger
TRDTR | Copyright © 2012 | Powered by Blogger | Blog Designed By Yogen Basnet