home > Webデザイン > jQuery > facebox.jsを使用してIE6だと...
facebox.jsを使用してIE6だとセレクトボックスが前面に出てしまう件の対処法
- 2009年11月 2日 12:54
- jQuery
昨日、「Facebox 1.2 - LightBox風に角丸で画像をポップアップ」という記事に次のようなコメントをいただいたので、その対処法を考えてみました。
そんな中、もう一つだけ困ったことが出てきてしまいました。 絶対にプルダウンリストが必要な画面で使いたいのですが、 IE6のバグでプルダウンが前面に表示されてしまうのです...。 サンプルにプルダウンを付けてみました。(IE6のみ変なようです)
Google で調べてみると、どうやらこれはIE6のバグのようですね。
その対処法としては、iframe要素を使う方法とvisibility: hidden;を使う方法があるようですが、今回はHTMLには手を加えないで済むようにvisibility: hidden;でIE6でもFacebox 1.2が使えるようにしてみます。
まず、この問題が起こるのはIE6だけということなので、CSSに次の記述を加えます。
* html select.hide { visibility: hidden; }
これで、「IE6でhideというクラス名のselect要素は非表示」になります。
ということは、facebox.jsで画像をオーバーレイ表示している間だけ、select要素にhideというクラス名を付ければいいことになります。
そこで、facebox.jsの115、116行目当たりに次の1行を挿入します。
loading: function() { // 115行目
init() // 116行目
$('select').addClass('hide'); // 挿入
さらに、facebox.jsの後ろから5、6行目当たりに次の1行を挿入します。
hideOverlay() // 後ろから6行目 $('#facebox .loading').remove() // 後ろから5行目 $('select').removeClass('hide'); // 挿入
これで、facebox.jsが呼び出されたときにselect要素にhideクラスが付き、閉じるときにhideクラスが削除されます。
以上です。
TrackBack [0]
- TrackBack URL
- Link to this Entry



tinybeansさま、何度もお世話になっております。
とても丁寧に対処法をありがとうございます!
早速試したところ見事直りました!
記事にまでしていただき、感激です。
ほっとひと安心したところまたひとつ問題が…
調べるとこれもIE6のバグ(未実装)みたいなのですが、
Faceboxの角丸を透過してくれません。
透過pngが透過にならない為のようです。
直したくて「IE PNG Fix 2.0」という
透過PNGサポートライブラリを設定してみました。
ですが、効果が見られません。
Faceboxの角丸のやわらかい雰囲気が好きなので
諦めきれずに試行錯誤しております…。
解決できる良い方法はありませんでしょうか?
にじさん、だいぶゴールが近づいてきたようでなりよりです。
さて、透過PNGの件も以下の記事にしましたのでお試しください。
http://www.tinybeans.net/blog/2009/11/04-124016.html
うまくいきますように。
Web業界にいる身ですがtinybeans様の記事で勉強させて
頂いています。今後も応援しております。
ありがとうございます!
今後もお役に立てるようにがんばります!