カーソルを当てると表示されるようなメニューを作っていると
しばしば遭遇する現象。ただしIEのみ。
重なりが悪いのかと、z-indexを設定しても駄目。
それもその筈でselectboxを制御しているのはブラウザではなく
OSなのだそうだ。
ゲイツめ・・・!
何故かiframeはselectboxの上に表示できるので<div>の下にダミーの
<iframe>を入れ込めば良い。(shimって言うらしい)
bodyに<iframe scrolling="no" frameborder="0" id="shim"></iframe>
を記述しておいて、Javascriptのdisplay属性を切り替えるところに
setShim(element);
を追加。setShimの中身はこんな。elementで渡してるのは当然div。
function setShim(obj) {
var shim = document.getElementById('shim');
// サイズ、位置を合わせる
shim.style.left = obj.style.left;
shim.style.top = obj.style.top;
shim.style.width = obj.offsetWidth;
shim.style.height = obj.offsetHeight;
shim.style.display = 'block';
}
な感じ。ふむ。
しばしば遭遇する現象。ただしIEのみ。
重なりが悪いのかと、z-indexを設定しても駄目。
それもその筈でselectboxを制御しているのはブラウザではなく
OSなのだそうだ。
ゲイツめ・・・!
何故かiframeはselectboxの上に表示できるので<div>の下にダミーの
<iframe>を入れ込めば良い。(shimって言うらしい)
bodyに<iframe scrolling="no" frameborder="0" id="shim"></iframe>
を記述しておいて、Javascriptのdisplay属性を切り替えるところに
setShim(element);
を追加。setShimの中身はこんな。elementで渡してるのは当然div。
function setShim(obj) {
var shim = document.getElementById('shim');
// サイズ、位置を合わせる
shim.style.left = obj.style.left;
shim.style.top = obj.style.top;
shim.style.width = obj.offsetWidth;
shim.style.height = obj.offsetHeight;
shim.style.display = 'block';
}
な感じ。ふむ。