编辑:tl;dr: 在 ie7 中,css dropmenu 元素边框将鼠标焦点提供给下拉位下方的 flash 对象。帮助。
嗨。 我正在尝试创建一个出现在 Flash 对象上的 css 下拉菜单。此菜单是使用 ul > li > 层次结构创建的,“a”标签有边框。我遇到的问题是,在 IE7 中,当鼠标经过“a”标签的边界时,一个 mouseover 事件被发送到下面的 flash 对象,一个 mouseout 被发送到菜单。这会导致菜单在鼠标向下移动时消失。
我找到了 this thread但不确定如何实现垂直菜单的解决方案。
相关代码示例(我意识到其中大部分内容完全是一团糟,但我从设计师那里得到了大部分内容,不能花时间重写它以稍微减少......呃:P)
CSS:
d.menu-td:hover ul.submenu, td.iehover ul.submenu, ul.submenu li:hover, ul.submenu li a:hover,
td.hmenu-td:hover ul.submenu, td.iehover ul.submenu li, td.iehover ul.submenu li a{
display:block;
}
ul.submenu li{
border-top: 2px solid #000;
display: block;
}
ul.submenu li a:link, ul.submenu li a:visited{
font-size: 12px;
padding: 2px;
display: block;
background-color: #277aab;
height: 34px;
color: #93bdd5;
}
ul.submenu li a:hover, ul.submenu li a:active{
background-color: #319edf;
color: #1f628d;
}
html:
Flash 影片:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="990" height="280" id="header" align="middle" onmouseover="alert('111');">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="./upload/<?=$page_flash?>" />
<param name="quality" value="high" />
<param name="wmode" value="opaque" />
<embed src="./upload/<?=$page_flash?>" quality="high" wmode="transparent" width="990" height="280" name="header" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
下拉菜单:
<td align="center" class="menu-td">
<a href="index.php?p=2" class="menu">סניפים</a>
<div style="position:relative;left:35px;">
<ul class="submenu">
<li>
<a href="index.php?p=9" class="menu">link1</a>
</li>
<li>
<a href="index.php?p=10" class="menu">link2</a>
</li>
<li>
<a href="index.php?p=11" class="menu">link3</a>
</li>
<li>
<a href="index.php?p=12" class="menu">link4</a>
</li>
<li>
<a href="index.php?p=13" class="menu">link5</a>
</li>
<li>
<a href="index.php?p=14" class="menu">link6</a>
</li>
</ul>
</div>
</td>
一些 javascript 来帮助 ie 识别悬停事件:
<!--[if gte IE 5.5]>
<script language="JavaScript" type="text/javascript">
jQuery(document).ready(function(){
jQuery("td.menu-td, td.hmenu-td").hover(
function() { jQuery(this).addClass("iehover"); },
function() { jQuery(this).removeClass("iehover"); }
);
});
</script>
<![endif]-->
实际页面的链接: link text (有问题的菜单是页面顶部右侧的第二个链接)。
非常感谢任何帮助。
最佳答案
你应该给子菜单添加任何背景颜色 <ul>
.基本上,如果元素没有背景,那么它对于鼠标事件也是“透明的”。
关于css - Flash 上的 IE7 下拉菜单 - 边框将鼠标悬停发送到 Flash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4237301/