最近のブラウザで flash に半透明 div を被せたらどうなるか
flash に「wmode="opaque"」つけると HTML 要素を被せられることはflash 上でマウスジェスチャーできるようにする user.js (wmode="opaque") - m2O - チーム俺等で書きましたが、最近のブラウザでどうなっているのかというのを試してみました。
サンプルとして使用したのは以下の動画です。
FF6オペラを(opera)ボーカロイドで(vocaloid)ver高音質(high-quality) - YouTube
このページを開いて以下のブックマークレットを実行しました。
javascript:void(document.body.appendChild(document.createElement('div')).style.cssText='position:absolute;zIndex:9999;top:50px;left:100px;width:300px;height:300px;background:rgba(255,255,0,0.5)')
Opera10.10
私が今でも愛用している Opera10.10 です。
古いブラウザですので、前述のように「wmode="opaque"」を付けないと z-index に関わらず上に被せることができません。
「wmode="opaque"」を付けると上に被せることができて、被せた部分が半透明になり、下の動画が見えるようになります。
Opera12 (alpha)
Opera の現在の開発バージョンである 12 です。
被せている部分の動画は見えず、白く(動画の下の要素が)見えています。これは現在の安定バージョン(11.50) と同じ動きです。
Opera さんはほんとに奇妙な実装をしますね。
画像は省略しますが、Opera10.10 と同じように「wmode="opaque"」を付けると上に被せることができて、被せた部分が半透明になり、下の動画が見えるようになります。
Firefox 5
Firefox 最新バージョンの 5 です。
Opera10.10 と同じです。
こちらも画像は省略しますが、「wmode="opaque"」を付けると上に被せることができて、被せた部分が半透明になり、下の動画が見えるようになります。
Google Chrome 12
「wmode="opaque"」をつけなくても、被せた部分がきちんと半透明になり、下の動画が見えています。期待通りの動きです。
こちらも Firefox5 と同じでした。
まとめ
Opera12 での挙動が奇妙だったので他のブラウザも調べてみたら、
Google Chrome が期待通りの動きをしてくれて驚きました。
が、他のブラウザを見ると
まだまだ HTML 要素を重ねて使用したい場合は wmode をつけた方が良いようです。
wmode については 日本語入力が行えなくなる などの不具合が言われていましたが、最近の flash プレイヤーではどんなんですかね? その辺は調べてません。