2010-11-21 5 views
0

bearbeiten: tl; dr: in ie7, eine css dropmenu Element Grenzen Ausbeute Maus Fokus auf ein Flash-Objekt unter dem Dropdown-Bit. Hilfe.IE7 Drop-Down-Menü über Flash - Grenzen senden mouseover zu flash

hi. ich versuche ein css-Dropdown-Menü zu erstellen, das über einem Flash-Objekt angezeigt wird. Dieses Menü wird mit einer ul> li> a-Hierarchie erstellt, und die "a" -Tags haben einen Rahmen. Das Problem, das ich habe ist, dass in IE7, wenn die Maus über den Rand der "a" -Tags überschreitet, ein MouseOver-Ereignis an das Flash-Objekt darunter gesendet wird und ein MouseOut an das Menü gesendet wird. Dadurch wird das Menü ausgeblendet, wenn die Maus im Menü nach unten bewegt wird.

ich fand this thread aber bin mir nicht sicher, wie man die Lösung für ein vertikales Menü implementiert.

relevanten Codebeispiele (i erkennen, dass viel von diesem ein komplettes Chaos, aber ich war die meisten dieser vom Designer gegeben und kann nicht verbringen Zeit Umschreiben es etwas weniger sein ... igitt: 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:

der Flash-Film:

<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> 

das Drop-Down-Menü:

<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> 

ein wenig Javascript, um das Hover-Ereignis zu machen, dh erkennen:

<!--[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]--> 

ein Link auf die aktuelle Seite: link text (das beleidigende Menü ist der zweite Link rechts oben auf der Seite e).

alle und alle Hilfe wird sehr geschätzt.

Antwort

1

Sie sollten dem Untermenü <ul> eine Hintergrundfarbe hinzufügen. Wenn das Element keinen Hintergrund hat, ist es auch für Mausereignisse "transparent".

+0

löste es. Danke, ein Millon. – user514998

0

Was Sie tun müssen, ist Ihr Flash transparent wie this (point 6) machen.

+0

bereits versucht, dass. Ich wechselte zu undurchsichtig, weil ich diesen Vorschlag woanders gesehen habe, was auch nicht funktioniert hat. – user514998

Verwandte Themen