2011年3月9日水曜日

thickbox を IE で正常に動作させる為の改造(スクロールすると中央に表示されない)

あー苦労した。


ざくっと手段を書きますと、「thickbox.js」の関数 tb_position の処理をまるごと下記に置き換えます。


function tb_position() { // hot fixed for microsuck internet exploiter
jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH /2),
10) + 'px', width: TB_WIDTH + 'px'});
var dtop=parseInt((TB_HEIGHT / 2),10);
var scrolledDown=0;
if(jQuery.browser.msie){//ie hax
if(document.body != null){
scrolledDown=document.body.scrollTop;
}
else if(document.documentElement != null){
scrolledDown = document.documentElement.scrollTop; //ie7
}
}
if(scrolledDown){
jQuery("#TB_window").css({marginTop: '+' + scrolledDown + 'px'});
}
else{
jQuery("#TB_window").css({marginTop: '-' + dtop + 'px'});
}
}


これだけで、スクロールした状態でも中央にウインドウを出してくれますです。

2 件のコメント:

t-midori さんのコメント...
このコメントは投稿者によって削除されました。
匿名 さんのコメント...

ありがとうございます。
xmlで作ったページに採用したのですが(xml宣言があるとうまく行かないとかで)、昨日一日苦労して解決せず、thickboxやめてshadowboxにするか、なんて試したけど同じことであきらめかけていたのに、えうろぐさんのおかげでうまくいきました!
本当に助かりました。

amazon