m2O

2011/02/12 (土)

fancybox とかで表示位置が下にズレる時の対処法

|  fancybox とかで表示位置が下にズレる時の対処法 - m2O を含むブックマーク

fancybox っていう、画像を画面中央に表示する jQuery プラグインがあって、Opera でこれを使っているサイトを閲覧すると画像が画面中央でなく下の方に表示される問題がありました。

f:id:miya2000:20110212114957p:image

(背景がグレーになった後、何も表示されない…んじゃなくて下の方に表示されている。)

それで「fancybox クソだなあ」とか思いつつ原因を調べてたんですが、fancybox は全然悪くなくて jQuery のバージョンが古く(1.2系)、$(window).height() がウィンドウサイズを返すのではなくてページの高さを返すからでした。fancybox さんゴメンナサイ。

no title


と言うわけで(上のパッチは使わずに) jQuery の方を user.js で直しましょう。jQuery の方を直すことで、fancybox 以外の不具合も解消するかもしれません。

jQuery1.3 以降では既に直っていますから対象は 1.2系だけです。修正方法はチケットに書かれていたのでそれをそのまま使います。

https://gist.github.com/823432

年月が過ぎてブラウザがバージョンアップしていくと、昔動いていたものが動かなくなったりする*1ので、サイト運営を続けていく過程ではライブラリのバージョンアップもやっていかないといけないのだろうと思いました。

*1:ブラウザがバグを修正した結果、バッドノウハウ的なものが淘汰される、というケースも多くあると思います。

トラックバック - http://orera.g.hatena.ne.jp/miya2000/20110212