基本的に、ページ全体をカバーするオーバーレイ div 要素を作成する関数があります。また、サイズ変更イベントをウィンドウにバインドするため、ウィンドウのサイズが変更されるたびにオーバーレイのサイズも変更されます。
function stdOverlay() {
var overlay = $('<div />').css({width : $(window).width(), height : $(window).height()});
var overlayResize =
function() {
$(overlay).css({width : $(window).width(), height : $(window).height()});
};
$('body').append(overlay);
$(window).resize(overlayResize);
//... other codes, like remove overlay and unbind the events
//$('div.stdgui-overlay').unbind('resize', overlayResize);
}
関数が呼び出されるたびに、オーバーレイがない場合はオーバーレイが追加され、サイズ変更イベントがウィンドウにバインドされます。また、オーバーレイ イベントを削除する必要がある場合は、イベントのバインドを解除します。重複バインディングを防ぐために、overlayResize メソッドがウィンドウ要素にバインドされているかどうかを確認するにはどうすればよいですか? 何かのようなもの:
if(overlyResize is not bound to window)
$(window).resize(overlayResize);
else
//do something else or do nothing;