スクリーンの幅の高さを取得する方法

4581 ワード

js取得画面の幅の広い方法(ブラウザ対応)
スクリーンの有効幅:
window.screen.availHeight window.screen.avail Width
ページの可視領域の幅:Dcument.body.clientWidthページの可視領域の高さ:document.body.clientHeightページの可視領域の幅:document.body.offset Widthページの可視領域の高さ:document.body.offset Height(境界線の幅を含む)document.body.scrollwidthホームページの全文は高いです.document.body.scrollHeightページは巻かれています.高いです.document.body.scrollTopページは左に巻かれています.document.body.scrollLeftページの本文の部分はwindowowowowowows.screenpです.:window.screen.widthスクリーン利用可能ワークエリアの高さ:window.screen.availHeight画面利用可能ワークエリアの幅:window.screen.avail Width HTML正確な位置付け:scrollLeft、scrollwidth、clientwidth、offset Width
scrollHeight:オブジェクトのスクロールの高さを取得します.scrollLeft:オブジェクトの左端とウィンドウの左端の間にある距離scrollTopを設定または取得する:オブジェクトの最上端とウィンドウに見えるコンテンツの最上端の間の距離scrollwidthを設定または取得する:オブジェクトのスクロール幅offsetHeightを取得する:レイアウトまたは親座標offsetPart属性によって指定された親座標に対するオブジェクトの高さoffset Left:レイアウトまたはoffset Part属性で指定された親座標に対するオブジェクトの計算左位置offset Top:レイアウトまたはoffset Top属性で指定された親座標に対するオブジェクトの計算先端位置event.client X相対文書の水平座標event.client.lientに対する文書の垂直座標event.offsetX相対容器の水平座標event.offsetxtコンテナの垂直座標document.documentElement.scrollTop垂直方向にスクロールする値event.client X+document.documentElement.scrollTopは、ドキュメントの水平座標+垂直方向スクロールの量に対して
IE、FireFoxの違いは以下の通りです.
IE 6.0、FF 1.06+:
clientWidth=width+padding
clientHeight=height+padding
offset Width=width+padding+border
offset Height=height+padding+border
IE 5.0/5.5:clientWidth=width-border
clientHeight=height-border
offset Width=width
offset Height=height
(要注意:CSSにおけるmargin属性は、clientWidth、offset Width、clientHeight、offset Heightとは関係がない)
------------------------------
技術の要点今回のコードは主にDockmentオブジェクトを使用しています.これらの属性の主な機能と使い方は以下の通りです.
ウィンドウのサイズを得るには、ブラウザの属性と方法が必要です.ウィンドウのサイズを確認するには、Netscapeの下でWindowの属性が必要です.IEの下でDcument内部に深く入り込む必要があります.DOM環境では、ウィンドウのサイズを得るためには、要素ではなくルート要素のサイズに注意が必要です.
Windowオブジェクトのinner Width属性は、現在のウィンドウの内部幅を含む.Windowオブジェクトのinner Height属性は、現在のウィンドウの内部高さを含んでいます.
Dcumentオブジェクトのbody属性は、HTMLドキュメントのラベルに対応します.DcumentオブジェクトのdocumentElement属性は、HTMLドキュメントのルートノードを表します.
Dcument.body.clientHeightはHTMLドキュメントがあるウィンドウの現在の高さを表します.Dcument.body.client WidthはHTMLドキュメントのあるウィンドウの現在の幅を表します.
ソースプログラムの解読
(1)プログラムはまず、ウィンドウの現在の幅と高さを表示するための2つのテキストボックスを含むフォームを作成し、その値はウィンドウサイズによって変化します.
(2)後続のJavaScriptコードでは、まず2つの変数windwidthとwindHeightを定義し、ウィンドウの高さ値と幅値を保存する.
(3)その後、関数findDimensions()において、window.innerHeightとwindow.innerWidthを用いてウィンドウの高さと幅を得て、両者を前述の2つの変数に保存する.
(4)Dcument内部に深く入り込んでbodyを検出し、ウィンドウサイズを取得し、前述の2つの変数に格納する.
(5)関数の最後に、名前でフォーム要素にアクセスした結果、2つのテキストボックスに出力します.
(6)JavaScriptコードの最後に、findDimensionsions()関数を呼び出して、全体の操作を完了します.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
仮想キーボードが飛び出すと、windowのresizeイベントがトリガされます.
問題のinputはposition:fixedを使いますか?position:fixedなら、resizeトリガ時に自動的に位置を調整するはずです.
//以下のコードは、ドキュメントの流れの中の要素を視認エリアに直接移動させるために使用されます.Android 5.0+有効(5.0と5.1しか測定されていません.その他は不明です.)、IOSは測定していません.
element.scrollIntoView()
==============================================================================================================================================フォックス事件はレスゼ事件の前にトリガされるからです.focusイベントでは、焦点を得るinput要素保存変数に格納されます.resizeイベントでは、ブラウザの可視領域のtopとbottomを取得します.ブラウザの可視領域の位置を取得します.
var view Top=$
viewBottom = viewTop + window.innerHeight;  //       
//jQueryは使わない
var view Top=document.body.scrollTop、
viewBottom = viewTop + window.innerHeight;
ドキュメント内の要素の位置を取得します.
var element Top=elementは保存のinputです.
elementBottom = elementTop + $element.height();
//jQueryは使わない
/*元素の位置情報を取得する*/
var getElement Position=function(elem){
var defaultRect = {top: 0, left: 0};

var rect = (elem.getBoundingClientRect && elem.getBoundingClientRect()) || defaultRect;

var ret = {

    top: rect.top + document.body.scrollTop,

    left: rect.left + document.body.scrollLeft

}

return ret;
)
var element Top=getElement Position.top,/元素上部位置
elementBottom = elementTop + element.clientHeight; //       
まとめてみます
Dcument.body.scrollTopは現在のbodyスクロールの位置を獲得します.get BoundingClient Rect()を取得したelementはviewportに対して上のコードから見ましたが、要素が視認エリア内にあるかどうかを判断して、直接element.get BoundingCient Rect()を使うといいですね( ̄∇ ̄)
ウィンドウの位置を調整
ドル(window).scrollTop(value)//調整value
//jQueryは使わない
window.scrollTo(0,value);調整value