Hello there
I've combined the YUI Menus with the Tabview. In one of the tabs I
have a select. The select in the tab which is suppose to be under
the menu always is visible over the menu.
The code is below, take a look. just copy and paste this code in a
file and see yourself.
Please help. I'm stuck with this for 3 days now!
Thanks in Advance
Sri
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML
4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TabView Example - Basic From Existing Markup</title>
<link rel="stylesheet" type="text/css" href="css/example.css">
<link rel="stylesheet" type="text/css"
href="http://developer.yahoo.com/yui/build/tabview/assets/tabview.css
">
<link rel="stylesheet" type="text/css"
href="http://developer.yahoo.com/yui/build/tabview/assets/border_tabs
.css">
<script type="text/javascript"
src="http://developer.yahoo.com/yui/build/yahoo/yahoo.js"></script>
<script type="text/javascript"
src="http://developer.yahoo.com/yui/build/event/event.js"></script>
<script type="text/javascript"
src="http://developer.yahoo.com/yui/build/dom/dom.js"></script>
<script type="text/javascript"
src="http://developer.yahoo.com/yui/build/element/element-
beta.js"></script>
<script type="text/javascript"
src="http://developer.yahoo.com/yui/build/tabview/tabview.js"></scrip
t>
<style type="text/css">
#demo { width:30em; }
#demo .yui-content { padding:1em; } /* pad content container */
</style>
<script type="text/javascript">
YAHOO.example.init = function() {
var tabView = new YAHOO.widget.TabView('demo');
};
YAHOO.example.init();
</script>
<link rel="stylesheet" type="text/css"
href="http://developer.yahoo.com/yui/build/reset-fonts-grids/reset-
fonts-grids.css">
<!-- CSS for Menu -->
<link rel="stylesheet" type="text/css"
href="http://developer.yahoo.com/yui/build/menu/assets/menu.css">
<!-- Page-specific styles -->
<style type="text/css">
div.yui-b p {
margin:0 0 .5em 0;
color:#999;
}
div.yui-b p strong {
font-weight:bold;
color:#000;
}
div.yui-b p em {
color:#000;
}
h1 {
font-weight:bold;
margin:0 0 1em 0;
padding:.25em .5em;
background-color:#ccc;
}
#productsandservices {
margin:0 0 10px 0;
}
</style>
<!-- Namespace source file -->
<script type="text/javascript"
src="http://developer.yahoo.com/yui/build/yahoo/yahoo.js"></script>
<!-- Dependency source files -->
<script type="text/javascript"
src="http://developer.yahoo.com/yui/build/event/event.js"></script>
<script type="text/javascript"
src="http://developer.yahoo.com/yui/build/dom/dom.js"></script>
<script type="text/javascript"
src="http://developer.yahoo.com/yui/build/animation/animation.js"></s
cript>
<!-- Container source file -->
<script type="text/javascript"
src="http://developer.yahoo.com/yui/build/container/container_core.js
"></script>
<!-- Menu source file -->
<script type="text/javascript"
src="http://developer.yahoo.com/yui/build/menu/menu.js"></script>
<!-- Page-specific script -->
<script type="text/javascript">
YAHOO.example.onMenuBarReady = function() {
// Animation object
var oAnim;
// Utility function used to setup animation for
submenus
function setupMenuAnimation(p_oMenu) {
if(!p_oMenu.animationSetup) {
var aItems = p_oMenu.getItemGroups();
if(aItems && aItems[0]) {
var i = aItems[0].length - 1;
var oSubmenu;
do {
oSubmenu = p_oMenu.getItem
(i).cfg.getProperty("submenu");
if(oSubmenu) {
oSubmenu.beforeShowEvent.subscribe(onMenuBeforeShow, oSubmenu, true);
oSubmenu.showEvent.subscribe
(onMenuShow, oSubmenu, true);
}
}
while(i--);
}
p_oMenu.animationSetup = true;
}
}
// "beforeshow" event handler for each submenu of
the menu bar
function onMenuBeforeShow(p_sType, p_sArgs, p_oMenu)
{
if(oAnim && oAnim.isAnimated()) {
oAnim.stop();
oAnim = null;
}
YAHOO.util.Dom.setStyle
(this.element, "overflow", "hidden");
YAHOO.util.Dom.setStyle(this.body, "marginTop",
("-" + this.body.offsetHeight + "px"));
}
// "show" event handler for each submenu of the menu
bar
function onMenuShow(p_sType, p_sArgs, p_oMenu) {
oAnim = new YAHOO.util.Anim(
this.body,
{ marginTop: { to: 0 } },
.5,
YAHOO.util.Easing.easeOut
);
oAnim.animate();
var me = this;
function onTween() {
me.cfg.refireEvent("iframe");
}
function onAnimationComplete() {
YAHOO.util.Dom.setStyle
(me.body, "marginTop", ("0px"));
YAHOO.util.Dom.setStyle
(me.element, "overflow", "visible");
setupMenuAnimation(me);
}
/*
Refire the event handler for the "iframe"
configuration property with each tween so
that the
size and position of the iframe shim remain
in sync
with the menu.
*/
if(this.cfg.getProperty("iframe") == true) {
oAnim.onTween.subscribe(onTween);
}
oAnim.onComplete.subscribe(onAnimationComplete);
}
// "render" event handler for the menu bar
function onMenuRender(p_sType, p_sArgs, p_oMenu) {
setupMenuAnimation(p_oMenu);
}
// Instantiate and render the menu bar
var oMenuBar = new YAHOO.widget.MenuBar
("productsandservices", { autosubmenudisplay:true, hidedelay:750,
lazyload:true });
// Subscribe to the "render" event
oMenuBar.renderEvent.subscribe(onMenuRender,
oMenuBar, true);
oMenuBar.render();
};
// Initialize and render the menu bar when it is
available in the DOM
YAHOO.util.Event.onContentReady("productsandservices",
YAHOO.example.onMenuBarReady);
</script>
</head>
<body>
<!-- start: primary column from outer template -->
<div id="yui-main">
<div class="yui-b">
<!-- start: stack grids here -->
<div id="productsandservices"
class="yuimenubar">
<div class="bd">
<ul class="first-of-type">
<li class="yuimenubaritem first-
of-type"><a href="http://communication.yahoo.com">Menu1</a>
<div
id="pim" class="yuimenu">
<div
class="bd">
<ul
class="first-of-type">
<li class="yuimenuitem"><a
href="http://mail.yahoo.com">menuItem1</a></li>
<li class="yuimenuitem"><a
href="http://addressbook.yahoo.com">W</a></li>
<li class="yuimenuitem"><a
href="http://mail.yahoo.com">menuItem1</a></li>
<li class="yuimenuitem"><a
href="http://addressbook.yahoo.com">W</a></li>
<li class="yuimenuitem"><a
href="http://calendar.yahoo.com">menuItem2</a></li>
<li class="yuimenuitem"><a
href="http://notepad.yahoo.com">menuItem4</a></li>
<li class="yuimenuitem"><a
href="http://mail.yahoo.com">menuItem1</a></li>
<li class="yuimenuitem"><a
href="http://addressbook.yahoo.com">W</a></li>
<li class="yuimenuitem"><a
href="http://calendar.yahoo.com">menuItem2</a></li>
<li class="yuimenuitem"><a
href="http://notepad.yahoo.com">menuItem4</a></li>
<li class="yuimenuitem"><a
href="http://mail.yahoo.com">menuItem1</a></li>
<li class="yuimenuitem"><a
href="http://addressbook.yahoo.com">W</a></li>
<li class="yuimenuitem"><a
href="http://calendar.yahoo.com">menuItem2</a></li>
<li class="yuimenuitem"><a
href="http://calendar.yahoo.com">menuItem2</a></li>
<li class="yuimenuitem"><a
href="http://notepad.yahoo.com">menuItem4</a></li>
</ul>
</div>
</div>
</li>
</ul>
<ul class="first-of-type">
<li class="yuimenubaritem first-
of-type"><a href="http://communication.yahoo.com">Menu2</a>
<div
id="pim" class="yuimenu">
<div
class="bd">
<ul
class="first-of-type">
<li class="yuimenuitem"><a
href="http://mail.yahoo.com">menuItem1</a></li>
<li class="yuimenuitem"><a
href="http://addressbook.yahoo.com">W</a></li>
<li class="yuimenuitem"><a
href="http://calendar.yahoo.com">menuItem2</a></li>
<li class="yuimenuitem"><a
href="http://notepad.yahoo.com">menuItem4</a></li>
</ul>
</div>
</div>
</li>
</ul>
<ul class="first-of-type">
<li class="yuimenubaritem first-
of-type"><a href="http://communication.yahoo.com">Menu3</a>
<div
id="pim" class="yuimenu">
<div
class="bd">
<ul
class="first-of-type ">
<li class="yuimenuitem"><a
href="http://mail.yahoo.com">menuItem1</a></li>
<li class="yuimenuitem"><a
href="http://addressbook.yahoo.com">W</a></li>
<li class="yuimenuitem"><a
href="http://calendar.yahoo.com">menuItem2</a></li>
<li class="yuimenuitem"><a
href="http://notepad.yahoo.com">menuItem4</a></li>
<li class="yuimenuitem"><a
href="http://mail.yahoo.com">menuItem1</a></li>
<li class="yuimenuitem"><a
href="http://addressbook.yahoo.com">W</a></li>
<li class="yuimenuitem"><a
href="http://calendar.yahoo.com">menuItem2</a></li>
<li class="yuimenuitem"><a
href="http://notepad.yahoo.com">menuItem4</a></li>
<li class="yuimenuitem"><a
href="http://mail.yahoo.com">menuItem1</a></li>
<li class="yuimenuitem"><a
href="http://addressbook.yahoo.com">W</a></li>
<li class="yuimenuitem"><a
href="http://calendar.yahoo.com">menuItem2</a></li>
<li class="yuimenuitem"><a
href="http://notepad.yahoo.com">menuItem4</a></li>
<li class="yuimenuitem"><a
href="http://mail.yahoo.com">menuItem1</a></li>
<li class="yuimenuitem"><a
href="http://addressbook.yahoo.com">W</a></li>
<li class="yuimenuitem"><a
href="http://calendar.yahoo.com">menuItem2</a></li>
<li class="yuimenuitem"><a
href="http://notepad.yahoo.com">menuItem4</a></li>
</ul>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div id="doc">
<p> <select> <option>This Works!</option> <option>works</option>
<option>Works</option></select> </p>
<h1>TabView Example - Basic From Existing Markup</h1>
<p>This example demonstrates how to create a basic TabView
widget from existing markup.</p>
<div id="demo" class="yui-navset">
<ul class="yui-nav">
<li class="selected"><a
href="#lorem"><em>lorem</em></a></li>
<li><a href="#ipsum"><em>ipsum</em></a></li>
<li><a href="#dolor"><em>dolor</em></a></li>
</ul>
<div class="yui-content">
<div id="lorem">
<p>Lorem ipsum dolor sit amet, consectetuer
adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet
dolore magna aliquam erat.</p>
<select>
<option>Doesn't work
</option> <option>Doesn't work</option> <option>Doesn't work</option>
</select>
</div>
<div id="ipsum">
<ul>
<li><a href="#">Lorem ipsum dolor sit
amet.</a></li>
<li><a href="#">Lorem ipsum dolor sit
amet.</a></li>
<li><a href="#">Lorem ipsum dolor sit
amet.</a></li>
<li><a href="#">Lorem ipsum dolor sit
amet.</a></li>
</ul>
</div>
<div id="dolor">
<form action="#">
<fieldset>
<legend>Lorem Ipsum</legend>
</fieldset>
</form>
</div>
</div>
</div>
</div>
</body>
</html>