ホームページ ウェブフロントエンド jsチュートリアル ブラウザのビジュアルエリアのサイズを取得するjs実装コード_javascriptスキル

ブラウザのビジュアルエリアのサイズを取得するjs実装コード_javascriptスキル

May 16, 2016 pm 05:58 PM
サイズ

测试例子:

复制代 代码如下:

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<頭>









結果:

クロム:


FF

オペラ:

サファリ:

IE9:

IE8

IE7:

IE6

说明:

Chrome/FF/Safari/opera<br>对这些浏览器而言,window有个属性innerWidth/innerHeight包含的是整个文档的可视区域尺寸,注意,这个尺寸是包含滚动条大小的。<br>如果我们不计滚动条的影响,就可以直接使用这两个属性。<br>如果滚动条会影响(比如最大化弹出框),那么应该想另外的办法。<br><br>Document对象是每个DOM树的根,但是它并不代表树中的一个HTML元素,document.documentElement属性引用了作为文档根元素的html标记,document.body属性引用了body标记<br>我们这里获取常见的三个值(scrollWidth、offsetWidth和clientwidth)来比较一下<br><br>document.documentElement.scrollWidth返回整个文档的宽度<br>document.documentElement.offsetWidth返回整个文档的可见宽度<br>document.documentElement.clientwidth返回整个文档的可见宽度(不包含边框),clientwidth = offsetWidth - borderWidth<br>不过一般来说,我们不会给document.documentElement来设置边框,所以这里的clientwidth 与 offsetWidth一致<br><br>document.body.scrollWidth返回body的宽度<br><span style="COLOR: #ff0000">注意,这里的scrollWidth有个不一致的地方,基于webkit的浏览器(chrome和safari)返回的是整个文档的宽度,也就是和document.documentElement.scrollWidth一致,</span><br>opera和FF返回的就是标准的body 的scrollWidth,个人觉得opera和FF算是比较合理的。<br>document.body.offsetWidth返回body的offsetWidth<br>document.body.clientwidth返回body的clientwidth(不包含边框),clientwidth = offsetWidth - borderWidth<br><br>我们看上面的例子,会发现body和documentElement的有些值是相等的,这并不是表示他们是等同的。而是因为当我们没有给body设置宽度的时候,document.body默认占满整个窗口宽度,于是就有:<br>document.body.scrollWidth = document.documentElement.scrollWidth<br>document.body.offsetWidth = document.documentElement.offsetWidth<br>document.body.clientwidth = document.documentElement.clientwidth - document.body.borderWidth(body的边框宽度)<br>当我们给body设置了一个宽度的时候,区别就出来了。<br><br>IE9/IE8<br>这两个差不多,唯一的区别是IE9包含window.innerWidth属性,而IE8不包含window.innerWidth属性。<br>document.documentElement.scrollWidth返回整个文档的宽度,和FF等浏览器一致<br>document.documentElement.offsetWidth返回整个文档的可见宽度(包含滚动条,值和innerWidth一致),注意,这里和FF等浏览器又有点区别。<br>document.documentElement.clientwidth返回整个文档的可见宽度(不包含边框),和FF等浏览器一致。clientwidth = offsetWidth - 滚动条宽度<br><br>document.body.scrollWidth返回body的宽度,<span style="COLOR: #ff0000">注意,这里的scrollWidth和FF等浏览器有点区别,这里并不包括body本身的border宽度。</span><br><span style="COLOR: #ff0000">因此例子中,相比FF少了10px。</span><br>document.body.offsetWidth返回body的offsetWidth,和FF等浏览器一致<br>document.body.clientwidth返回body的clientwidth(不包含边框),和FF等浏览器一致,clientwidth = offsetWidth - borderWidth<br><br>IE7<br>IE7与IE9/IE8的主要区别是<br>第一、document.documentElement.offsetWidth的返回值不一样,<br>参见上面说的,IE9/IE8的document.documentElement.offsetWidth包含滚动条,<span style="COLOR: #ff0000">但是,IE7的document.documentElement.offsetWidth不包含滚动条。</span><br>第二、document.documentElement.scrollWidth返回整个文档的宽度,<span style="COLOR: #ff0000">注意,这里和IE9/IE8、FF等浏览器又有不一致,对于IE9/IE8、FF等浏览器,scrollWidth最小不会小于窗口的宽度,但是在IE下没有这个限制,文档有多小,这个就有多小</span><br>其他倒是挺一致的。<br><br>最后是IE6了<br>IE6的document.documentElement返回值与IE9/IE8没有区别(由此可见,对于document.documentElement,IE7就是个奇葩)。<br><span style="COLOR: #ff0000">话说回来,IE的document.body就是个奇葩,当没有给body设置宽度的时候,body是默认占满整个文档的(注意,其他的浏览器都是占满整个窗口),当然,最小值是整个窗口的大小,就是说body指向了根元素。</span><br>因此,在算上IE6在解析width方面的bug,和其他的浏览器的区别就淋漓尽致了。<br>document.body.scrollWidth返回body的宽度,和IE9/IE8/IE7一致<br>document.body.offsetWidth返回body的offsetWidth,注意,由于body的不同,这里的offsetWidth = scrollWidth + borderWidth<br>document.body.clientwidth返回body的clientwidth(不包含边框)clientwidth = offsetWidth - borderWidth<br><span style="COLOR: #ff0000">另外,有一点和IE7同样,就是document.documentElement.scrollWidth没有最小宽度限制。</span>
ログイン後にコピー

总结一下,在标標準モード下,我们获取文档可见領域的方法如下:

复制代码代码如下:

function getViewSizeWithoutScrollbar(){//不含滚動条
return {
width : document.documentElement.clientWidth,
height: document.documentElement.clientHeight
}
}
function getViewSizeWithScrollbar(){//包含滚動条
if(window.innerWidth){
return {
width : window.innerWidth,
height: window.innerHeight
}
}else if(document.documentElement.offsetWidth == document.documentElement.clientWidth){
return {
幅 : document.documentElement.offsetWidth,
高さ : document.documentElement.offsetHeight
}
}else{
return {
width : document.documentElement.clientWidth getScrollWith(),
height: document.documentElement.clientHeight getScrollWith()
}
}
}

getScrollWith() は获取滚動条尺寸,参见
http://www.jb51.net/article/29036.htm
有何を错误欢迎指出
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

A4用紙のサイズは何センチですか? A4用紙のサイズは何センチですか? Feb 11, 2024 pm 11:51 PM

A4用紙は現在、オフィスや書斎など、さまざまな場所で使用されています。コピーに使用する紙は基本的にA4用紙です。A4用紙のサイズが何センチなのか知らない友達もたくさんいます。見てみましょう。バー。」 1. A4用紙のサイズは21cm×29.7cm(210mm×297mm)で、世界のほとんどの国で使われている用紙サイズはこの国際規格を採用しています。 2. 原点A4用紙は210mm×297mmです。理由 1: 長さ 2、幅 2 の長方形結果の比率は です。ただし、297 を 210 で割ると、結果は 1.414 に近く、この比率はまさに紙切れです。

パソコンのサイズの計算方法 パソコンのサイズの計算方法 Mar 20, 2023 pm 01:43 PM

コンピューターのサイズの計算方法: 1. 平らで安定したテーブルを見つけ、モニターをテーブルの上に置き、モニターを安定させます; 2. 定規を使用して対角線の長さを測定します; 3. 単位をセンチメートルとフィートの間で変換します。モニターのサイズを計算するだけです。

a4の紙のサイズはどれくらいですか? a4の紙のサイズはどれくらいですか? Apr 25, 2024 am 11:55 AM

1. A4用紙のアスペクト比は、一般的な2:3や3:4とは異なります。 √2:1 という独自の比率により、多くの用紙サイズの中でも際立っています。 2. この特別な比率により、A4 用紙に理想的な視覚効果と実用性が提供されます。

写真のサイズを小さくする方法「初心者必見:画像サイズを圧縮する詳しい手順」 写真のサイズを小さくする方法「初心者必見:画像サイズを圧縮する詳しい手順」 Feb 06, 2024 pm 06:55 PM

多くの友人は自分の生活習慣を記録するためにカメラを使用していますが、プロの写真家の友人の中には、より鮮明な写真を撮るために一眼レフカメラを使用している人もいます。ただし、一眼レフカメラで撮影した写真は鮮明ですが、数十メガバイトの写真となると、ストレージデバイスへの負担が大きくなるのは間違いありません。では、写真の細部をできるだけ保持しながら写真のサイズを縮小する方法はあるのでしょうか?実際には、画像を圧縮するだけです。では、画像サイズを圧縮するにはどうすればよいでしょうか?ここでは、共有するための 2 つの良い方法を紹介します。方法 1: 他の処理や編集を行わずに、画像をビューティー ツールにインポートできます。画像を保存するときに、システムは画質調整オプションを提供し、スライダーをドラッグして保持される鮮明さを調整できます。推定サイズがニーズを満たしたら、「保存」をクリックします。方法2: ①. まずこれを開きます。

a5のサイズはどれくらいですか a5のサイズはどれくらいですか Apr 24, 2024 pm 05:53 PM

1. A5 用紙は国際標準の用紙サイズで、そのサイズは 148 mm x 210 mm (5.83 インチ x 8.27 インチ) です。 2. レターヘッド、ノート、チラシ、書籍など、さまざまな用途によく使用されます。 3. A5 用紙は、A4 用紙の半分より少し大きいサイズで、A シリーズの用紙サイズの 5 番目のサイズです。 4. このシリーズのサイズは、黄金比に基づいた一連の標準用紙サイズを作成するために、20 世紀初頭にドイツの技術者 Walter Portmann によって開発されました。

Huawei P40の寸法は長さ、幅、高さはどれくらいですか? Huawei P40の寸法は長さ、幅、高さはどれくらいですか? Jun 26, 2023 am 11:31 AM

Huawei p40のサイズは、長さ148.9 mm、幅71.06 mm、厚さ8.50 mm、バッテリーを含む重量は約175グラムで、Huaweiが開発し、2020年3月26日に全世界でオンラインで発売されたスマートフォンです。シルバー、ドーン ゴールド、ゼロ ホワイト、ブライト ブラック、ディープ シー ブルーを含む 5 色からお選びいただけます。Kirin 9905G SoC チップを搭載しており、プロセッサーとベースバンドを 1 つに結合し、革新的に設計された CPU 3 レベルのエネルギー効率アーキテクチャーを備えています。 -コア GPU スーパー クラスター、エネルギー効率とトランジスタ密度、より多くのすべての 5G 帯域をサポートします。

Python を使用して画像の寸法とサイズを変更する方法 Python を使用して画像の寸法とサイズを変更する方法 Aug 17, 2023 pm 11:21 PM

Python を使用して画像のサイズとサイズを変更する方法の紹介: 多くのアプリケーション シナリオでは、さまざまなニーズに適応するために画像のサイズとサイズを変更する必要がある場合があります。 Python には画像を処理および操作するためのライブラリが豊富に用意されているため、画像のサイズやサイズを簡単に調整できます。この記事では、Python を使用して画像のサイズと形状を変更する方法を紹介し、読者の参考となるコード例を示します。 PIL ライブラリの使用 PIL (PythonImagingLibrary) は Python

PHPでの製品マルチスペックSKUの実装方法と詳細説明 PHPでの製品マルチスペックSKUの実装方法と詳細説明 Sep 05, 2023 pm 12:21 PM

PHP における商品の複数仕様 SKU の実装方法と詳細な説明 電子商取引プラットフォームでは、商品の複数仕様 SKU (在庫管理単位) が非常に一般的です。 SKU は、サイズ、色、スタイルなど、製品のさまざまな属性の組み合わせとして理解できます。異なる SKU は異なる在庫量に対応しており、顧客は商品を購入する際に特定の SKU を選択する必要があります。 PHP では、配列を使用して製品の複数仕様の SKU を管理および表示できます。この記事では、SKU の実装を詳しく紹介し、対応するコード例を示します。 1.SK

See all articles