ブログ カレンダー

« « 2024 10月 » »
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2

カテゴリ一覧

アーカイブ

最新のエントリ

最新のコメント

最新のトラックバック

趣味のブログ - Lightbox Plus のバグ

Lightbox Plus のバグ

カテゴリ : 
Ajax
執筆 : 
OhYeah! 2010.09.26 21:36
 オリジナル 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
	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

コメント一覧