星期二, 7月 15, 2008

下拉選單(Drop-Down Menu)被Flash擋住了…

今天遇到一個奇怪的問題,就是當我們用Dreamweaver的SPRY來做下拉選單(Drop Down Menu)功能的時候,如果底下有個Flash的話,會造成這個下拉選單被擋住!

被擋住會怎樣嗎?…很明顯的,會讓人很生氣!

我首先想到的是 z-index 屬性,它的數值愈大,愈不會被別的東西擋住;數值愈低,則代表這個元素在愈底層…不過,前提是它只能在設有 position 屬性的元素裡面才有作用。所以我在 ul 裡面加了一個 class="zTop" 的類別,在zTop加入底下的屬性:
position:static; z-index:999;
結果,發現…根本就沒有任何作用!難不成得在Flash裡面加上 position:static; z-index:-1; 這樣的屬性嗎?仍然是一個完全無效的結果…ap4a有一篇文章可以參考: Z-index Oddities: Menu dropdowns overlapped by positioned elements,但在目前的狀況下,似乎幫助不大。

所以這問題可能不在 z-index 的深度,而是在Flash本身的問題。webmasterworld.com的一篇文章有提到另一個解決的方法:mozilla - dropdown menu will does not overlap flash movie。這方法確實解決了這個問題!

請在Flash的Object標籤底下加入一個空白標籤,裡面寫進底下的參數:
<param name="wmode" value="transparent">
在 embed 標籤裡再加入底下的參數:
wmode="transparent"
沒想到這樣就解決我的問題了!棒!Adobe針對Flash Object與Embed標籤的屬性也有做詳細的說明。事實上,不一定只有將 wmode 的參數值設成 Transparent(透明) 才行,其實 Opaque(不透明) 也可以!所以只要設定透明度,不論是否透明,都能有效解決這個問題。(設成 window 則是肯定不行!因為我試過了~)

1 則留言:

匿名 提到...

可否再說的詳細一點,有範例的話會更好。
謝謝。

benson 2009/10/25