Shadowboxのバグ ( IEで中央に表示されずにずれてしまう )
Shadowboxはcssでposition:fixed;にして
常に真ん中に表示されるようになっています。
しかしIE6ではfixedが使えないため
positionをabsoluteにして
スクロールやリサイズがあった度に
位置をしていています。
var centerVertically = function(){
var shadowbox = SL.get('shadowbox');
var scroll = document.documentElement.scrollTop;
var s_top = scroll + Math.round((SL.getViewportHeight() - (shadowbox.offsetHeight || 0)) / 2);
SL.setStyle(shadowbox, 'top', s_top + 'px');
};
上にあるのが該当部分のソースなのですが、
これでは十分ではありません。
compatModeによっては
スクロールの位置を取得できません。
var scroll = document.documentElement.scrollTop;
ここを
var scroll = (document.body.scrollTop || document.documentElement.scrollTop);
このように変更することで
ドキュメントのタイプ宣言にかかわらず
ボックスを画面の中央に表示させる事ができるようになります。
shadowbox.jsに記述されている
という部分は全て
document.documentElement.scrollTop
と書き換えてください。
(document.body.scrollTop || document.documentElement.scrollTop)