Index |
HOME > プログラムTOP > JavaScript |
|||||||||||||||||||||||||||||||||||||||||||||||
ウィンドウ状態の調整
JavaScriptの実用的なTIPS集です。ここでは、ブラウザのウィンドウのサイズや位置を調整するための手法を扱います。主に、window オブジェクトに関するTIPS となります。(IE4以上 / NN4以上)
sasaraan programming ![]() Exposition ■ウィンドウサイズの取得
ウィンドウサイズの取得は、window オブジェクトの outerWidth, outerHeight の両プロパティで取得できます。ただし、IE は未対応です。
また、使用頻度の高い表示領域(body)のみのサイズは、innerHeight, innerWidth の両プロパティで取得できます。こちらも IE は未対応ですが、代わりに clientWidth, clientHeight を使用して取得できます。この二つは、IE6 では、表示モードによって取得の仕方が異なります。なお、単位はすべてピクセル(px)です。
document.compatMode
: 表示モードの取得
"BackCompat" : 互換モード "CSS1Compat" : 標準モード // JavaScript ソース
function ShowSize()
{
var ua = navigator.userAgent; // ユーザーエージェント
var nWidth, nHeight; // サイズ
var nHit = ua.indexOf("MSIE"); // 合致した部分の先頭文字の添え字
var bIE = (nHit >= 0); // IE かどうか
var bVer6 = (bIE && ua.substr(nHit+5, 1) == "6"); // バージョンが 6 かどうか
var bStd = (document.compatMode && document.compatMode=="CSS1Compat");
// 標準モードかどうか
if (bIE) {
if (bVer6 && bStd) {
nWidth = document.documentElement.clientWidth;
nHeight = document.documentElement.clientHeight;
} else {
nWidth = document.body.clientWidth;
nHeight = document.body.clientHeight;
}
} else {
nWidth = window.innerWidth;
nHeight = window.innerHeight;
}
alert("サイズ : 幅 " + nWidth + " / 高さ " + nHeight);
}
<!-- HTML ソース -->
<form>
<input type='button' value='サイズの表示' onclick='ShowSize()' />
</form>
■ウィンドウサイズの設定
ウィンドウサイズを設定する時は、window オブジェクトの outerWidth, outerHeight の両プロパティを使用します。ただし、これらは IE では未対応です。同じ window オブジェクトの resizeTo メソッドを使用してもサイズを設定することができます。こちらは比較的新しいブラウザであれば共通して使用できますが、NN4 では正しい値に設定されません。NN4 に対応させるのであれば、処理を分岐させる必要があります。なお、window オブジェクトには、相対的にサイズを変更させる resizeBy メソッドも用意されています。
// JavaScript ソース
function Resize(width, height)
{
if (window.outerWidth) {
window.outerWidth = width;
window.outerHeight = height;
} else {
window.resizeTo(width, height);
}
}
<!-- HTML ソース -->
<form>
NewSize :
<input type="button" value="640x480" onclick="Resize(640,480)"/>
<input type="button" value="480x320" onclick="Resize(480,320)"/>
<input type="button" value="320x240" onclick="Resize(320,240)"/>
</form>
■ウィンドウの移動
ウィンドウの位置の設定は、window オブジェクトの moveTo メソッドを使用します。また、相対的に座標を移動させるには、moveBy メソッドを使用します。
// JavaScript ソース
function Relocate(x, y)
{
window.moveTo(x, y);
}
<!-- HTML ソース -->
<form>
NewLocation :
<input type="button" value="(0, 0)" onclick="Relocate(0,0)"/>
<input type="button" value="(100,100)" onclick="Relocate(100,100)"/>
<input type="button" value="(200,200)" onclick="Relocate(200,200)"/>
</form>
■ウィンドウのスクロール
ウィンドウのスクロールには、window オブジェクトの scrollTo メソッドを使用します。scroll メソッドも同じ機能を持ちますが、こちらは古い仕様のメソッドとなります。また、相対的に座標を移動させるには、scrollBy メソッドを使用します。
// JavaScript ソース
var currX = 0; // 現在の位置(x座標)
var currY = 0; // 現在の位置(y座標)
var stepX = 0; // 一度に進める値(x方向)
var stepY = 3; // 一度に進める値(y方向)
var maxX = 0; // スクロールを止める位置(x座標)
var maxY = 2500; // スクロールを止める位置(y座標)
var nSpan = 10; // 進める間隔(ミリ秒)
var idTimer; // タイマーのID
function AutoScroll() {
if (currX<=maxX && currY<=maxY) {
currX += stepX;
currY += stepY;
window.scrollTo(currX, currY);
idTimer = setTimeout("AutoScroll()", nSpan);
} else {
if (idTimer) clearTimeout(idTimer);
}
}
<!-- HTML ソース -->
<body onload="AutoScroll()">
...
</body>
|
||||||||||||||||||||||||||||||||||||||||||||||||
www.sasaraan.net |
(c) morijoh |