JavaScript高級プログラム設計のBOMのwindowオブジェクトのウィンドウ位置8.1.3ノートを言います.

1813 ワード

windowオブジェクトの位置を特定したり変更するための属性と方法がたくさんあります.IE、Safari、Opera、Chromeは、画面の左側と上部に対するウィンドウの位置を表すために、screenLeftとscreenTop属性を提供する.FirefoxはscreenXとscreenY属性において同じウィンドウ位置情報を提供し、SafariとChromeも同時にこの2つの属性をサポートします.OperaはscreenXとscreenY属性にも対応していますが、screenLeftとscreenTop属性は対応していませんので、Operaでは使わないことをお勧めします.下記のコードを使ってブラウザをまたいでウィンドウの左と上の位置を取得できます.
var leftPos = (typeof window.screenLeft == "number") ?
window.screenLeft : window.screenX;
var topPos = (typeof window.screenTop == "number") ?
window.screenTop : window.screenY;
この例は、2元のオペレータを用いて、まず、screenLeftとscreenTop属性が存在するかどうかを決定する.
Safari、Opera、Chromeのうち)は、この2つの属性の値を取得します.存在しない場合はscreenXを取得する.
とscreenYの値を返します.
これらの値を使用する過程で,小さな問題にも注意しなければならない.IE、Operaにおいて、screenLeftとscreenTopに保存される.
画面左と上からwindowオブジェクトで表示されるページの可視領域までの距離です.つまり、もしwindowの対象が
一番外側のオブジェクト、そしてブラウザのウィンドウがスクリーンの一番上にくっついています.つまり、y軸座標は0です.では、screenTopの値はページにあります.
表示領域の上にあるブラウザツールバーのピクセルの高さ.しかし、Chrome、Firefox、Safariでは、screenYまたはscreenTop
に保存されているのは、画面に対するブラウザウィンドウ全体の座標値、すなわちウィンドウのy軸座標が0のときに0を返します.
更に人にはっきりつかめないのは、Firefox、SafariとChromeはずっとページの中の各フレームのtop.screenXとに戻ります.
top.screenY値ページが外距離に設定されているためにずれが発生した場合でも、windowオブジェクトに対して使用します.
screenXとscreenYは毎回同じ値を返します.IEとOperaはスクリーン境界に対するフレームの正確な座り方を与える.
値をつける
最終的には、ブラウザをまたいでウィンドウの左と上の正確な座標値を取得できませんでした.しかし、moveToを使用します.
とmoveBy()の方法は、ウィンドウを新しい位置に正確に移動させることができます.この二つの方法は両方のパラメータを受信します.
moveTo()は、新しい位置のx座標値とy座標値を受信し、moveBy()は、水平および垂直方向に移動する画素数を受信する.
いくつかの例を見てみます.
//           
window.moveTo(0,0);
//      100   
window.moveBy(0,100);
//      (200,300)
window.moveTo(200,300);
//       50   
window.moveBy(-50,0);
は、この2つの方法がブラウザで無効にされる可能性があることに注意したい.さらに、OperaとIE 7(およびより高いバージョン)ではデフォルトで
は無効です.また、この二つの方法はフレームには適用されず、最外階のwindowオブジェクトにのみ使用されます.