趣味のブログ - Lightbox Plus のバグ
オリジナル Lightbox+ に次のようなバグがありました。このサイトの私家改造版 Lightbox+ は、2010.09.22 から修正済みです。また、Lightbox+ for XCL は本日修正版に更新しました。
1. 大画像表示時に、Next ボタンがスクロールバーやキーボードによる水平スクロールに伴って表示位置が移動してしまう。
これは、Next ボタンの位置を表示ボックスに absolute right で貼り付けているのが原因です。表示ボックスに absolute left で貼り付けるか、fixed right でブラウザのクライアントエリアに貼り付ける必要があります。今回は、前者を採りました。
2. 大画像表示時に、ブラウザによっては Next ボタンの右端がスクロールバーに隠れてしまう。
これは、ブラウザのクライアントエリアの取得する WindowSize で最初に window.innnerWidth/window.innnerHeight を使用しているのが原因です。innerWidth/innerHeight はブラウザの種類によってどの領域を返すかが異なるので、改良版のように修正しました。このサイトはどのブラウザでも標準モードで表示しているので各ブラウザで問題なく動作していますが、互換モードで document.documentElement が有効なブラウザがあると、互換モード表示サイトでは問題があるかもしれません。
参考サイト: http://d.hatena.ne.jp/onozaty/20060802/p1
オリジナル WindowSize.prototype.update
改良版 WindowSize.prototype.update
ついでに、スクロールバーのサイズも含めた表示領域サイズを取得する PageSize も、Firefox でしか使用できない window.scrollMaxX/window.scrollMaxY を使用していたので、scrollWidth/scrollHeight を使用したものに修正しています。これも、互換モード表示サイトでは、もしかすると問題があるかもしれません。
参考サイト: http://d.hatena.ne.jp/onozaty/20060803/p1
オリジナル PageSize.prototype.update
改良版 PageSize.prototype.update
これは、Next ボタンの位置を表示ボックスに absolute right で貼り付けているのが原因です。表示ボックスに absolute left で貼り付けるか、fixed right でブラウザのクライアントエリアに貼り付ける必要があります。今回は、前者を採りました。
2. 大画像表示時に、ブラウザによっては Next ボタンの右端がスクロールバーに隠れてしまう。
これは、ブラウザのクライアントエリアの取得する WindowSize で最初に window.innnerWidth/window.innnerHeight を使用しているのが原因です。innerWidth/innerHeight はブラウザの種類によってどの領域を返すかが異なるので、改良版のように修正しました。このサイトはどのブラウザでも標準モードで表示しているので各ブラウザで問題なく動作していますが、互換モードで document.documentElement が有効なブラウザがあると、互換モード表示サイトでは問題があるかもしれません。
参考サイト: http://d.hatena.ne.jp/onozaty/20060802/p1
オリジナル WindowSize.prototype.update
var w =
(window.innerWidth) ? window.innerWidth
: (d.documentElement && d.documentElement.clientWidth) ? d.documentElement.clientWidth
: d.body.clientWidth;
var h =
(window.innerHeight) ? window.innerHeight
: (d.documentElement && d.documentElement.clientHeight) ? d.documentElement.clientHeight
: d.body.clientHeight;
改良版 WindowSize.prototype.update
var w =
(d.documentElement && d.documentElement.clientWidth) ? d.documentElement.clientWidth :
(d.boy.clientWidth) ? d.body.clientWidth : window.innerWidth;
var h =
(d.documentElement && d.documentElement.clientHeight) ? d.documentElement.clientHeight :
(d.boy.clientHeight) ? d.body.clientHeight : window.innerHeight;
ついでに、スクロールバーのサイズも含めた表示領域サイズを取得する PageSize も、Firefox でしか使用できない window.scrollMaxX/window.scrollMaxY を使用していたので、scrollWidth/scrollHeight を使用したものに修正しています。これも、互換モード表示サイトでは、もしかすると問題があるかもしれません。
参考サイト: http://d.hatena.ne.jp/onozaty/20060803/p1
オリジナル PageSize.prototype.update
var w =
(window.innerWidth && window.scrollMaxX) ? window.innerWidth + window.scrollMaxX
: (d.body.scrollWidth > d.body.offsetWidth) ? d.body.scrollWidth
: d.body.offsetWidt;
var h =
(window.innerHeight && window.scrollMaxY) ? window.innerHeight + window.scrollMaxY
: (d.body.scrollHeight > d.body.offsetHeight) ? d.body.scrollHeight
: d.body.offsetHeight;
改良版 PageSize.prototype.update
var w =
(d.documentElement && d.documentElement.scrollWidth) ? d.documentElement.scrollWidth :
(d.boy.scrollWidth) ? d.body.scrollWidth : window.innerWidth;
var h =
(d.documentElement && d.documentElement.scrollHeight) ? d.documentElement.scrollHeight :
(d.boy.scrollHeight) ? d.body.scrollHeight : window.innerHeight;
トラックバック
トラックバックpingアドレス http://www.o-ya.net/modules/d3blog/tb.php/39
コメント一覧
0件表示
(全0件)
すべてのコメント一覧へ