タイトルのような現象を見たことがあるでしょうか?
LiteboxやThickboxを利用しているページで、YouTubeやFlashを表示していると半透明な黒い背景より、手前に表示されてしまいます。
これはwmodeという値が指定されてないか「window」という値が設定されているからだそうだ。そこでwmodeを変更することで解決できそうだ。
埋め込んだFlashにはwmodeを『transparent(透明化)』か『opaque(不透明化)』のどちらかを設定してあげると、一般のHTMLと同じように背景に表示されるようになるようだ。
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">
<param name="movie" value="hoge.swf" />
<param name="wmode" value="transparent" />
<embed src="main.swf" wmode="transparent" type="application/x-shockwave-flash" />
</object>
なお、『transparent』のほうはバグが色々と見つかってるようなので、利用するならば『opaque』のほうがよさそうだ。
YouTube動画のwmodeを変える場合は、URLに『wmode=opaque』を追加すれば対応されるようだ。
<iframe width="320" height="240" src="https://www.youtube.com/embed/NLy4cvRx7Vc?rel=0&wmode=opaque" frameborder="0" allowfullscreen></iframe>
liteboxやthickboxでこの様な問題が出てきたら、wmodeを確認・変更してみよう。
参考 YouTube動画を埋め込む際に重なり順序を指定する「wmode=”transparent”」を設定する方法 | BlackFlag
余談だが、Flashを非表示にする別の方法として、objectタグを非表示にしてしまうという荒業もある。(JavaScript内に記載)
▼非表示にする時
// Flash Display visibility=hidden $("object").css("visibility","hidden");
▼再表示する時
// Flash Display visibility=visible setTimeout(function(){ $("object").css("visibility","visible"); },500);
コメントを残す