我做的效果是:光标滑过一级菜单后出现二级菜单,滑过显示出来的二级菜单后保持悬停显示状态,滑出二级菜单后隐藏当前二级菜单。
当二级菜单层中包含普通的文字连接等元素时效果正常实现了。
但是,当二级菜单层中包含select下拉列表时就出现问题了:
当展开二级菜单层中包含的select下拉列表后 光标在列表中移动时,所在二级菜单层就消失了,如图:
而在ie8中查看,则连展开的select下拉列表都消失了。期待大家的指教!先谢谢了!
当二级菜单层中包含普通的文字连接等元素时效果正常实现了。
但是,当二级菜单层中包含select下拉列表时就出现问题了:
当展开二级菜单层中包含的select下拉列表后 光标在列表中移动时,所在二级菜单层就消失了,如图:
而在ie8中查看,则连展开的select下拉列表都消失了。期待大家的指教!先谢谢了!
http://bbs.blueidea.com/viewthread.php?tid=2948186&pid=4696594&page=1&extra=page%3D1
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="JavaScript" type="text/javascript">
<!--
function showdivs(name,id,num){
hideall(name,id,num);
document.getElementById(name+id).style.display = "block"; //显示当前层
}
function hideall(name,id,num){
for(i=1;i<num+1;i++){
document.getElementById(name+i).style.display = "none"; //隐藏其他层
}
}
//-->
</script>
<style type="text/css">
<!--
.info02 { width:400px; text-align:center; margin:0px; padding:0px; background-color:#CCCCCC;}
.info02 ul li { float:center; text-align:center; margin:0px; padding:0px; }
.info02 ul li span { padding:0px; margin:0px; }
.info03 { clear:both; width:400px; text-align:left; margin:0px; padding:0px; background-color: #FFCC33;}
.menu01 { width:120px; text-align:left; margin:0px; padding:0px; background-color:#FF6600; display:none;}
.menu01 ul li { font-family: 宋体, Arial; font-size: 12px; color:#434343; list-style-type: none;}
.menu01 ul li a:link { padding:0px; margin:0px;}
.menu01 ul li a:visited { padding:0px; margin:0px;}
.menu01 ul li a:hover { padding:0px; margin:0px;}
.menu01 ul li a:active { padding:0px; margin:0px;}
-->
</style>
</head><body>
<center><div class="info02">
<span><a href="loginForm.do" target="_self" onMouseOver="showdivs('menudiv',1,3);">一级菜单1</a></span>
<span><a href="loginForm.do" target="_self" onMouseOver="showdivs('menudiv',2,3);">一级菜单2</a></span>
<span><a href="loginForm.do" target="_self" onMouseOver="showdivs('menudiv',3,3);">一级菜单3</a></span>
</div><div class="info03">
<div id="menudiv1" class="menu01" onMouseOver="showdivs('menudiv',1,3);" onMouseOut="hideall('menudiv',1,3);" style="margin-left:30px;">
<div>
<ul>
<li><a href="loginForm.do" target="_blank">二级菜单一a</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单一b</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单一c</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单一d</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单一e</a></li>
</ul>
</div>
</div>
<div id="menudiv2" class="menu01" onMouseOver="showdivs('menudiv',2,3);" onMouseOut="hideall('menudiv',2,3);" style="margin-left:140px;">
<div>
<ul>
<li><a href="loginForm.do" target="_blank">二级菜单二a</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单二b</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单二c</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单二d</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单二e</a></li>
</ul>
</div>
</div>
<div id="menudiv3" class="menu01" onMouseOver="showdivs('menudiv',3,3);" onMouseOut="hideall('menudiv',3,3);" style="margin-left:260px;">
<div>
<ul>
<li>
<br>
<select name="" onChange="javascript:window.open(this.options[this.selectedIndex].value)" class="select1">
<option value="http://www.163.com" selected="selected" >选项1a</option>
<option value="http://www.163.com" >选项1b</option>
<option value="http://www.163.com" >选项1c</option>
<option value="http://www.163.com" >选项1d</option>
<option value="http://www.163.com" >选项1e</option>
</select>
</li>
<br><br>
<li>
<select name="" onChange="javascript:window.open(this.options[this.selectedIndex].value)" class="select1">
<option value="http://www.163.com" selected="selected" >选项2a</option>
<option value="http://www.163.com" >选项2b</option>
<option value="http://www.163.com" >选项2c</option>
<option value="http://www.163.com" >选项2d</option>
<option value="http://www.163.com" >选项2e</option>
</select>
<br><br>
</li>
</ul>
</div>
</div>
</div></center>
</body>
</html>
style.visibility="visible";
<iframe id="maskFrm" style="position:absolute;z-index:550;width:expression(this.nextSibling.offsetWidth);height:expression(this.nextSibling.offsetHeight);top:expression(this.nextSibling.offsetTop);left:expression(this.nextSibling.offsetLeft);" frameborder="0"></iframe>
<div id="treeView" style="position:absolute;z-index:600;background-color:#f7fafc;margin:0px;padding:0px;border:0px dashed #dae9f3; overflow:hidden;width:380px;height:480px;display:none;">遮罩层</div>
原理:DIV不能盖住SELECT,而IFRAME能盖住SELECT。
style.visibility="hidden";
style.visibility="visible";这样做还是不行。
我的这个问题不是“DIV不能盖住SELECT”的问题,而是滑过下拉列表后触发了要滑出层才触发的onMouseOut动作。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="JavaScript" type="text/javascript">
<!--
function showdivs(name,id,num){
hideall(name,id,num);
document.getElementById(name+id).style.display = "block"; //显示当前层
}
function hideall(name,id,num){
if(event.srcElement){
if(id==3&&(document.activeElement.id=="Select1"||document.activeElement.id=="Select2")) num=2
}else{
if(id==3&&(event.explicitOriginalTarget.id=="Select1"||event.explicitOriginalTarget.id=="Select2")) num=2
}
for(i=1;i<num+1;i++){
document.getElementById(name+i).style.display = "none"; //隐藏其他层
}
}
//-->
</script>
<style type="text/css">
<!--
.info02 { width:400px; text-align:center; margin:0px; padding:0px; background-color:#CCCCCC;}
.info02 ul li { float:center; text-align:center; margin:0px; padding:0px; }
.info02 ul li span { padding:0px; margin:0px; }
.info03 { clear:both; width:400px; text-align:left; margin:0px; padding:0px; background-color: #FFCC33;}
.menu01 { width:120px; text-align:left; margin:0px; padding:0px; background-color:#FF6600; display:none;}
.menu01 ul li { font-family: 宋体, Arial; font-size: 12px; color:#434343; list-style-type: none;}
.menu01 ul li a:link { padding:0px; margin:0px;}
.menu01 ul li a:visited { padding:0px; margin:0px;}
.menu01 ul li a:hover { padding:0px; margin:0px;}
.menu01 ul li a:active { padding:0px; margin:0px;}
-->
</style>
</head><body>
<center><div class="info02">
<span><a href="loginForm.do" target="_self" onMouseOver="showdivs('menudiv',1,3);">一级菜单1</a></span>
<span><a href="loginForm.do" target="_self" onMouseOver="showdivs('menudiv',2,3);">一级菜单2</a></span>
<span><a href="loginForm.do" target="_self" onMouseOver="showdivs('menudiv',3,3);">一级菜单3</a></span>
</div><div class="info03">
<div id="menudiv1" class="menu01" onMouseOver="showdivs('menudiv',1,3);" onMouseOut="hideall('menudiv',1,3);" style="margin-left:30px;">
<div>
<ul>
<li><a href="loginForm.do" target="_blank">二级菜单一a</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单一b</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单一c</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单一d</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单一e</a></li>
</ul>
</div>
</div>
<div id="menudiv2" class="menu01" onMouseOver="showdivs('menudiv',2,3);" onMouseOut="hideall('menudiv',2,3);" style="margin-left:140px;">
<div>
<ul>
<li><a href="loginForm.do" target="_blank">二级菜单二a</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单二b</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单二c</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单二d</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单二e</a></li>
</ul>
</div>
</div>
<div id="menudiv3" class="menu01" onMouseOver="showdivs('menudiv',3,3);" onMouseOut="hideall('menudiv',3,3);" style="margin-left:260px;">
<div>
<ul>
<li>
<br>
<select name="" onChange="javascript:window.open(this.options[this.selectedIndex].value)" class="select1" ID="Select1" >
<option value="http://www.163.com" selected="selected" >选项1a</option>
<option value="http://www.163.com" >选项1b</option>
<option value="http://www.163.com" >选项1c</option>
<option value="http://www.163.com" >选项1d</option>
<option value="http://www.163.com" >选项1e</option>
</select>
</li>
<br><br>
<li>
<select name="" onChange="javascript:window.open(this.options[this.selectedIndex].value)" class="select1" ID="Select2">
<option value="http://www.163.com" selected="selected" >选项2a</option>
<option value="http://www.163.com" >选项2b</option>
<option value="http://www.163.com" >选项2c</option>
<option value="http://www.163.com" >选项2d</option>
<option value="http://www.163.com" >选项2e</option>
</select>
<br><br>
</li>
</ul>
</div>
</div>
</div></center>
</body>
</html>
hideall(name,id,num);
document.getElementById(name+id).style.display = "block"; //显示当前层
}这个hideall多余了吧?你不是对每个控件做了onMouseOut处理吗?
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="JavaScript" type="text/javascript">
<!--
function showdivs(e,name,id,num){
hideall(e,name,id,num);
document.getElementById(name+id).style.display = "block"; //显示当前层
}
function hideall(e,name,id,num){
if(window.event){
if(id==3&&(document.activeElement.id=="Select1"||document.activeElement.id=="Select2")) num=2
}else{
if(id==3&&(e.explicitOriginalTarget.id=="Select1"||e.explicitOriginalTarget.id=="Select2")) num=2
}
for(i=1;i<num+1;i++){
document.getElementById(name+i).style.display = "none"; //隐藏其他层
}
}
//-->
</script>
<style type="text/css">
<!--
.info02 { width:400px; text-align:center; margin:0px; padding:0px; background-color:#CCCCCC;}
.info02 ul li { float:center; text-align:center; margin:0px; padding:0px; }
.info02 ul li span { padding:0px; margin:0px; }
.info03 { clear:both; width:400px; text-align:left; margin:0px; padding:0px; background-color: #FFCC33;}
.menu01 { width:120px; text-align:left; margin:0px; padding:0px; background-color:#FF6600; display:none;}
.menu01 ul li { font-family: 宋体, Arial; font-size: 12px; color:#434343; list-style-type: none;}
.menu01 ul li a:link { padding:0px; margin:0px;}
.menu01 ul li a:visited { padding:0px; margin:0px;}
.menu01 ul li a:hover { padding:0px; margin:0px;}
.menu01 ul li a:active { padding:0px; margin:0px;}
-->
</style>
</head><body>
<center><div class="info02">
<span><a href="loginForm.do" target="_self" onMouseOver="showdivs(event,'menudiv',1,3);">一级菜单1</a></span>
<span><a href="loginForm.do" target="_self" onMouseOver="showdivs(event,'menudiv',2,3);">一级菜单2</a></span>
<span><a href="loginForm.do" target="_self" onMouseOver="showdivs(event,'menudiv',3,3);">一级菜单3</a></span>
</div><div class="info03">
<div id="menudiv1" class="menu01" onMouseOver="showdivs(event,'menudiv',1,3);" onMouseOut="hideall(event,'menudiv',1,3);" style="margin-left:30px;">
<div>
<ul>
<li><a href="loginForm.do" target="_blank">二级菜单一a</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单一b</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单一c</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单一d</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单一e</a></li>
</ul>
</div>
</div>
<div id="menudiv2" class="menu01" onMouseOver="showdivs(event,'menudiv',2,3);" onMouseOut="hideall(event,'menudiv',2,3);" style="margin-left:140px;">
<div>
<ul>
<li><a href="loginForm.do" target="_blank">二级菜单二a</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单二b</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单二c</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单二d</a></li>
<li><a href="loginForm.do" target="_blank">二级菜单二e</a></li>
</ul>
</div>
</div>
<div id="menudiv3" class="menu01" onMouseOver="showdivs(event,'menudiv',3,3);" onMouseOut="hideall(event,'menudiv',3,3);" style="margin-left:260px;">
<div>
<ul>
<li>
<br>
<select name="" onChange="javascript:window.open(this.options[this.selectedIndex].value)" class="select1" ID="Select1" >
<option value="http://www.163.com" selected="selected" >选项1a</option>
<option value="http://www.163.com" >选项1b</option>
<option value="http://www.163.com" >选项1c</option>
<option value="http://www.163.com" >选项1d</option>
<option value="http://www.163.com" >选项1e</option>
</select>
</li>
<br><br>
<li>
<select name="" onChange="javascript:window.open(this.options[this.selectedIndex].value)" class="select1" ID="Select2">
<option value="http://www.163.com" selected="selected" >选项2a</option>
<option value="http://www.163.com" >选项2b</option>
<option value="http://www.163.com" >选项2c</option>
<option value="http://www.163.com" >选项2d</option>
<option value="http://www.163.com" >选项2e</option>
</select>
<br><br>
</li>
</ul>
</div>
</div>
</div></center>
</body>
</html>