Lightbox JS v2.0 互換モード対応方法


ある案件でLightboxを最近使ったのですが、
訳あってJQueryバージョンではない旧バージョンを使用しました。
たしか、IE6とかに対応してなかったからかな・・・理由は忘れました。

導入してみるとフローティングで表示される
ウィンドウのtop位置が0なってしまいました。
ウィンドウ枠の上に張り付いている状態ですね。
水平位置は中央なんですけどね。

この挙動はIEでのみ起きていて、
原因はhtmlが互換モードで作成されていたからでした。
互換モードだとうまく高さが取得できていないようでした。

いろいろ調べた結果、
互換モードでも高さを取得できる関数があり、
lightbox.jsの231行目を以下のように修正しました。

▼修正前
var lightboxTop = arrayPageScroll[1] + (document.viewport.getHeight() / 10);

▼修正後
var lightboxTop = arrayPageScroll[1] + (document.body.clientHeight / 10);

まぁ、こんなの参考にする人はほぼいないと思いますが(笑)

コメントを残す