jqueryを使用せずにドキュメントの高さと幅を取得する方法


回答:


119
var height = document.body.clientHeight;
var width = document.body.clientWidth;

チェック:詳細な説明についてはこの記事参照してください 。


9
これはクロスブラウザではありません。投稿する前にこれをテストする必要があります。

12
@岩ザルそれを指摘してくれてありがとう。この4年前の返信は
完全で


Webサイトに境界線がある場合、このソリューションでは境界線を取り除きますが、jQueryソリューションでは取り除きません。身体の境界になる可能性は低いですが、知っておく価値があります。window.innerWidthこれを解決します
BritishSam

これは、コンテンツ/ウェブページの高さではなく、ブラウザウィンドウの高さを返します(ブラウザの高さを調整すると変化します)。
Radmation

56

http://www.howtocreate.co.uk/tutorials/javascript/browserwindowに示されている最後の例でさえ、Quirksモードでは機能しません。思ったより簡単に見つけることができます。これが解決策のようです(最新のjqueryコードから抽出)。

Math.max(
    document.documentElement["clientWidth"],
    document.body["scrollWidth"],
    document.documentElement["scrollWidth"],
    document.body["offsetWidth"],
    document.documentElement["offsetWidth"]
);

「高さ」の幅を置き換えるだけで高さを取得できます。


1
これが正解です。clientWidthは常に正しい値を持つとは限りません。
Wildhammer

clientWidthの問題は、表示のみです。scrollWidthには、画面から漏れるものが含まれます。少なくとも、これは2019年の私のクロムの実験のために真である
StayCool

@StayCool最新のjQueryはまだドキュメントの高さ/幅の計算にこのメソッドを使用しており、と同じ結果になり$(document).width()ます。たぶん、あなたは$(window).width()純粋なJSがdocument.documentElement["clientWidth"]現代のブラウザでちょうどそうであるようなものを求めています。
Dan

38

これはクロスブラウザソリューションです。

var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;

これは安全で正確なことです
Nan Zhou

1
これはドキュメントの高さと幅ではなく、ウィンドウの高さと幅を返します
Michael

25

getBoundingClientRect通常はクロスブラウザーで機能し、境界の四角形でサブピクセルの精度が得られるため、使用する必要があります。

elem.getBoundingClientRect()

1
サポートについて不思議に思っている人のために:caniuse.com/#feat=getboundingclientrect
Mike Gleason jr Couturier

document.bodyで使用すると高さ0が返されます
Michael

おそらくあなたの体の高さは0です。その表示タイプを変更しない場合は、デフォルトでそうなります。DOMインスペクターで確認してください。
Erik Aigner

11

jQueryなしでドキュメントサイズを取得する

document.documentElement.clientWidth
document.documentElement.clientHeight

画面サイズが必要な場合はこれを使用してください

screen.width
screen.height

8

あなたも試すことができます:

document.body.offsetHeight
document.body.offsetWidth

1
ウィンドウサイズ変更イベントなどでこれらを使用する場合は注意してください。高さと幅を計算する必要がありますが、これにはしばらく時間がかかります。
マイル

8

これはすべてのブラウザ/デバイスで機能するはずです。

function getActualWidth()
{
    var actualWidth = window.innerWidth ||
                      document.documentElement.clientWidth ||
                      document.body.clientWidth ||
                      document.body.offsetWidth;

    return actualWidth;
}

window.innerWidthは、開発ツールがChromeで開いているときにも正しい唯一の1つです
Alex


1

ドキュメントの幅と高さを簡単に見つける方法は?

HTMLで
<span id="hidden_placer" style="position:absolute;right:0;bottom:0;visibility:hidden;"></span>

JavaScriptで

     var c=document.querySelector('#hidden_placer');

     var r=c.getBoundingClientRect();
     r.right=document width
     r.bottom=document height`

必要に応じて、すべてのウィンドウサイズ変更イベントでこれを更新できます。


0

windowブラウザのアプリケーションウィンドウ全体です。document実際に読み込まれる、表示されているWebページです。

window.innerWidthそして、window.innerHeightスクロールバーを考慮に入れますが、それはあなたが望むものではないかもしれません。

document.documentElement上部スクロールバーのない完全なWebページです。document.documentElement.clientWidthyスクロールバーなしでドキュメントの幅サイズを返します。 document.documentElement.clientHeightxスクロールバーなしでドキュメントの高さサイズを返します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.