某個案子使用了 lightbox2 燈箱效果(jQuery 版,jquery-lightbox-0.5.js),而當 lightbox 彈出後,頁面上的 Flash 項目卻都消失了。看了一下 jquery-lightbox-0.5.js 的原始碼,原來是為了避免 Flash 顯示於最上層,也就是跑到 overlay 黑底的上面,而加上蹦現時將 embed、object 與 select 元素隱藏的語法。
其實可以利用 Flash 的 wmode 屬性避免這種現象,同時也可在燈箱效果出現時顯示 Flash(當然,是在 overlay 黑底下方)。
1.
首先打開 jquery-lightbox-0.5.js,在約 68 行處找到:
[code language=”javascript”]
$(’embed, object, select’).css({ ‘visibility’ : ‘hidden’ });
[/code]
將該行刪除或加上註解,使之失效。
2.
接著至原 HTML 頁面,將 Flash 項目加上 wmode 屬性,屬性值 transparent。
此部份自行搜尋關於 Flash 與 DIV 圖層先後順序的問題,在此不再贅述。
如此應該就能在 lightbox 效果出現時,保持 Flash 項目了。