index.mustache revision e558651951d10fb7873be0167297968b605af2b8
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney<div class="intro">
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney The MenuNav Node Plugin makes it easy to transform existing list-based
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney markup into traditional, drop down navigational menus that are both
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney accessible and easy to customize, and only require a small set of
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney dependencies. The MenuNav Node Plugin features:
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney <dt>Progressive Enhancement</dt>
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney The MenuNav Node Plugin is designed to support
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney <a href="http://en.wikipedia.org/wiki/Progressive_enhancement">Progressive Enhancement</a>,
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney making it easy to transform simple, semantic markup into dynamic
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney drop-down menus with just a few lines of JavaScript.
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney <dt>Small footprint</dt>
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney The MenuNav Node Plugin has a small footprint of ~5 KB (GZIP'd) and
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney requires a minimal set of dependencies (<a href="../api/module_yui.html">YUI</a>,
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney <a href="../api/module_event.html">Event</a>,
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney <a href="../api/module_dom.html">DOM</a>,
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney <a href="../api/module_node.html">Node</a>,
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney <a href="../api/module_oop.html">OOP</a>,
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney <a href="../api/module_classnamemanager.html">ClassNameManager</a>,
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney and the <a href="../api/module_node-focusmanager.html">Focus Manager Node Plugin</a>).
72eb0f3cb59c40eae32275bde8b9f3e93e705021Matt Sweeney <dt>Accessibility & Usability Minded</dt>
<a href="http://www.w3.org/TR/wai-aria/">WAI-ARIA Roles and States</a>.
<a href="http://video.yahoo.com/watch/4059872/10967271">Watch this video</a>
<a href="http://developer.yahoo.com/yui/articles/skinning/">Understanding YUI Skins</a>
for menus created using the MenuNav Node Plugin follows the same <a href="../widget/#markup">pattern established for Widgets</a>,
<a class="yui3-menuitem-content" href="http://www.yahoo.com"><!-- Content box -->
<a class="yui3-menuitem-content" href="http://www.yahoo.com"><!-- Menuitem content box -->
<a class="yui3-menuitem-content" href="http://mail.yahoo.com">Yahoo! Mail</a>
<a class="yui3-menuitem-content" href="http://addressbook.yahoo.com">Yahoo! Address Book</a>
<a class="yui3-menuitem-content" href="http://calendar.yahoo.com">Yahoo! Calendar</a>
<a class="yui3-menuitem-content" href="http://notepad.yahoo.com">Yahoo! Notepad</a>
the <a href="../api/Node.html#method_plug"><code>plug</code></a> method, passing in a reference to the MenuNav Node Plugin.
Y.on("contentready", function () {
// represents a Node instance, it is possible to just call "this.plug"
<div class="wideimage"><a href="../examples/node-menunav/node-menunav-2.html"><img src="assets/horizontal-menu.png" width="495" height="130" alt="Screen capture of a horizontal menu rendered with the default Sam Skin"></a></div>
<div class="wideimage"><a href="../examples/node-menunav/node-menunav-3.html"><img src="assets/menubutton-menu.png" width="495" height="130" alt="Screen capture of a horizontal menu with each menu label in the root menu rendered as menu buttons."></a></div>
<a href="../api/plugin.NodeMenuNav.html#config_autoSubmenuDisplay"><code>autoSubmenuDisplay</code></a>
and <a href="../api/plugin.NodeMenuNav.html#config_mouseOutHideDelay"><code>mouseOutHideDelay</code></a>
Y.on("contentready", function () {
// represents a Node instance, it is possible to just call "this.plug"
<div class="wideimage"><a href="../examples/node-menunav/node-menunav-4.html"><img src="assets/splitbutton-menu.png" width="495" height="130" alt="Screen capture of a horizontal menu with each menu label in the root menu rendered as split buttons."></a></div>
<a href="http://answers.yahoo.com">Answers</a><!-- menu label default action -->
<a href="#answers-options" class="yui3-menu-toggle">Answers Options</a><!-- menu label submenu toggle -->
<li class="yui3-menuitem"><a class="yui3-menuitem-content" href="http://answers.yahoo.com/dir/">Answer</a></li>
<li class="yui3-menuitem"><a class="yui3-menuitem-content" href="http://answersonthestreet.yahoo.com/">Answers on the Street</a></li>
<li class="yui3-menuitem"><a class="yui3-menuitem-content" href="http://answers.yahoo.com/question/;_ylt=Av3Nt22Mr7YNs651NWFv8YUPzKIX;_ylv=3?link=ask">Ask</a></li>
<li class="yui3-menuitem"><a class="yui3-menuitem-content" href="http://answers.yahoo.com/dir/;_ylt=Aqp_jJlsYDP7urcq2WGC6HBJxQt.;_ylv=3?link=over&amp;more=y">Discover</a></li>
Use the <a href="../../api/plugin.NodeMenuNav.html#config_autoSubmenuDisplay"><code>autoSubmenuDisplay</code></a>
and <a href="../../api/plugin.NodeMenuNav.html#config_mouseOutHideDelay"><code>mouseOutHideDelay</code></a>
Y.on("contentready", function () {
// represents a Node instance, it is possible to just call "this.plug"
<li class="yui3-menuitem"><a class="yui3-menuitem-content" href="http://mail.yahoo.com">Mail</a></li>
<li class="yui3-menuitem"><a class="yui3-menuitem-content" href="http://www.zimbra.com">Zimbra</a></li>
<li class="yui3-menuitem"><a class="yui3-menuitem-content" href="http://addressbook.yahoo.com">Address Book</a></li>
<li class="yui3-menuitem"><a class="yui3-menuitem-content" href="http://calendar.yahoo.com">Calendar</a></li>
<li class="yui3-menuitem"><a class="yui3-menuitem-content" href="http://notepad.yahoo.com">Notepad</a></li>
<li class="yui3-menuitem"><a class="yui3-menuitem-content" href="http://messenger.yahoo.com">Messenger</a></li>
<div class="wideimage"><a href="../examples/node-menunav/node-menunav-2.html"><img src="assets/menuitem-separators.png" width="495" height="250" alt="Screen capture of a horizontal menu"></a></div>
the active class name is that it provides consistent styling of state across all types of elements in
all <a href="http://developer.yahoo.com/yui/articles/gbs/">A-Grade browsers</a>.
and a class <code>yui3-menu-label-menuvisible</code> is applied to the submenu's corresponding label.
<a href="../api/Node.html#method_plug"><code>plug</code></a> method. (<em>Note:</em> These
var oMenuNav = Y.one("#productsandservices");
<td>Boolean indicating if use of the WAI-ARIA Roles and States should be enabled for the MenuNav. Set to true by default for Firefox 3 and Internet Explorer 8 as currently only these browsers have support for ARIA, and are supported by several screen readers for Windows that also offer support for ARIA.</td>
<td>Boolean indicating if submenus are automatically made visible when the user mouses over the menu's items.</td>
<td>Number indicating the time (in milliseconds) that should expire before a submenu is made visible when the user mouses over the menu's label. </td>
<td>Number indicating the time (in milliseconds) that should expire before a submenu is hidden when the user mouses out of a menu label heading in the direction of a submenu.</td>
<td>Number indicating the time (in milliseconds) that should expire before a submenu is hidden when the user mouses out of it.</td>
events for a menu built using the MenuNav Node Plugin, use the <a href="../api/Node.html#method_on"><code>on</code></a> method of the
var oMenuNode = Y.one("#menu-nav-1");
oMenuNode.on("click", function () {
<a href="../api/Y.Plugin.NodeMenuNav.html#property_NodeMenuNav.SHIM_TEMPLATE"><code>SHIM_TEMPLATE</code></a> property.
<a href="../api/Y.Plugin.NodeMenuNav.html#property_NodeMenuNav.SHIM_TEMPLATE_TITLE"><code>SHIM_TEMPLATE_TITLE</code></a>
page inside it, preventing the secure/nonsecure warning in IE when using the MenuNav Node Plugin
<img src="assets/select-issue.png" style="width:370px; height:257px; float:right;" alt="Screen capture of an open HTML select-based menu poking through the submenu of a menu created using the MenuNav Node Plugin">