Rumah hujung hadapan web tutorial js js获取浏览器的可视区域尺寸的实现代码_javascript技巧

js获取浏览器的可视区域尺寸的实现代码_javascript技巧

May 16, 2016 pm 05:58 PM
saiz

测试例子:

复制代码 代码如下:

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











结果:

chrome:


FF

OPERA:

SAFARI:

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>
Salin selepas log masuk

总结一下,在标准模式下,我们获取文档可见区域的方法如下:

复制代码 代码如下:

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 {
width : document.documentElement.offsetWidth,
height: document.documentElement.offsetHeight
}
}else{
return {
width : document.documentElement.clientWidth + getScrollWith(),
height: document.documentElement.clientHeight + getScrollWith()
}
}
}

getScrollWith()是获取滚动条尺寸,参见
http://www.jb51.net/article/29036.htm
有什么错误欢迎指出
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah saiz kertas a4 dalam sentimeter? Apakah saiz kertas a4 dalam sentimeter? Feb 11, 2024 pm 11:51 PM

Kertas A4 kini digunakan di banyak tempat, seperti pejabat, belajar, dan lain-lain. Kertas yang digunakan untuk menyalin pada dasarnya adalah kertas A4 Ramai rakan tidak tahu berapa sentimeter saiz kertas A4. 1. Saiz kertas A4 ialah 21cm × 29.7cm (210mm × 297mm Saiz kertas yang digunakan di kebanyakan negara di dunia menggunakan piawaian antarabangsa ini). 2. Asal kertas A4 ialah 210mm×297mm. Sebab 1: Segi empat tepat dengan panjang 2 dan lebar Nisbah yang terhasil ialah . Walau bagaimanapun, 297 dibahagikan dengan 210, hasilnya ialah 1.414, iaitu hampir dengan, dan nisbah ini betul-betul sekeping kertas

Bagaimana untuk mengira saiz komputer Bagaimana untuk mengira saiz komputer Mar 20, 2023 pm 01:43 PM

Cara mengira saiz komputer: 1. Cari meja rata dan stabil, letakkan monitor di atas meja, dan pastikan monitor stabil 2. Gunakan pembaris untuk mengukur panjang pepenjuru 3. Tukar unit antara sentimeter dan kaki; hanya mengira saiz monitor.

Apakah saiz kertas a4? Apakah saiz kertas a4? Apr 25, 2024 am 11:55 AM

1. Nisbah bidang kertas A4 adalah berbeza daripada 2:3 atau 3:4 biasa. Nisbah uniknya iaitu √2:1 menjadikannya menonjol di antara banyak saiz kertas. 2. Nisbah khas ini memberikan kesan visual yang ideal dan praktikal untuk kertas A4.

Cara mengurangkan saiz foto 'Mesti lihat untuk pemula: Langkah terperinci untuk memampatkan saiz imej' Cara mengurangkan saiz foto 'Mesti lihat untuk pemula: Langkah terperinci untuk memampatkan saiz imej' Feb 06, 2024 pm 06:55 PM

Ramai rakan menggunakan kamera untuk merakam tabiat hidup mereka Sesetengah rakan fotografi profesional mungkin juga menggunakan kamera SLR untuk mengambil gambar yang lebih jelas. Walau bagaimanapun, walaupun gambar yang diambil oleh kamera SLR adalah jelas, untuk gambar berpuluh-puluh megabait, ia sudah pasti akan meningkatkan tekanan pada peranti storan. Jadi, adakah cara untuk mengurangkan saiz foto sambil mengekalkan butiran gambar sebanyak mungkin? Malah, hanya memampatkan imej. Jadi bagaimana untuk memampatkan saiz imej? Berikut adalah dua kaedah yang baik untuk dikongsi. Kaedah 1: Kami boleh mengimport imej dalam alat kecantikan tanpa sebarang pemprosesan dan penyuntingan lain. Apabila menyimpan gambar, sistem akan menyediakan pilihan pelarasan kualiti imej, dan kami boleh menyeret peluncur untuk melaraskan ketajaman yang dikekalkan. Apabila anggaran saiz memenuhi keperluan anda, klik Simpan. Kaedah 2: ① Mula-mula buka ini ".

Apakah saiz a5 Apakah saiz a5 Apr 24, 2024 pm 05:53 PM

1. Kertas A5 ialah saiz kertas standard antarabangsa, saiznya ialah 148 mm x 210 mm (5.83 inci x 8.27 inci). 2. Ia sering digunakan dalam pelbagai aplikasi seperti alat tulis, buku nota, risalah dan buku. 3. Saiz kertas A5 adalah lebih besar sedikit daripada separuh daripada kertas A4, dan ia adalah saiz kelima dalam siri A saiz kertas. 4. Siri saiz ini telah dibangunkan oleh jurutera Jerman Walter Portmann pada awal abad ke-20 untuk mencipta satu siri saiz kertas standard berdasarkan nisbah emas.

Apakah dimensi Huawei P40: panjang, lebar dan tinggi? Apakah dimensi Huawei P40: panjang, lebar dan tinggi? Jun 26, 2023 am 11:31 AM

Saiz Huawei p40 ialah 148.9 mm panjang, 71.06 mm lebar, 8.50 mm tebal, dan berat kira-kira 175 gram termasuk bateri Ia adalah telefon pintar yang dibangunkan oleh Huawei dan dikeluarkan secara dalam talian pada 26 Mac 2020. Ia boleh didapati di Frost. Perak, Emas Fajar, Tersedia dalam 5 warna termasuk putih sifar, hitam terang dan biru laut dalam, ia dilengkapi dengan cip SoC Kirin 9905G, yang menggabungkan pemproses dan jalur asas menjadi satu, seni bina kecekapan tenaga tiga peringkat CPU yang direka secara inovatif, 16 Kluster super GPU teras, kecekapan tenaga dan ketumpatan transistor, menyokong lebih banyak Semua jalur 5G.

Bagaimana untuk menukar dimensi dan saiz imej menggunakan Python Bagaimana untuk menukar dimensi dan saiz imej menggunakan Python Aug 17, 2023 pm 11:21 PM

Pengenalan kepada cara menggunakan Python untuk menukar saiz dan saiz imej: Dalam banyak senario aplikasi, kita mungkin perlu menukar saiz dan saiz imej untuk menyesuaikan diri dengan keperluan yang berbeza. Python menyediakan banyak perpustakaan untuk memproses dan memanipulasi imej, membolehkan kami melaraskan saiz dan saiz imej dengan mudah. Artikel ini akan memperkenalkan cara menggunakan Python untuk menukar saiz dan bentuk imej, dan menyediakan contoh kod untuk rujukan pembaca. Menggunakan perpustakaan PIL PIL (PythonImagingLibrary) ialah Python

Kaedah pelaksanaan dan penjelasan terperinci SKU berbilang spesifikasi produk dalam PHP Kaedah pelaksanaan dan penjelasan terperinci SKU berbilang spesifikasi produk dalam PHP Sep 05, 2023 pm 12:21 PM

Kaedah pelaksanaan dan penerangan terperinci SKU pelbagai spesifikasi barangan dalam PHP Dalam platform e-dagang, SKU pelbagai spesifikasi (unit penyimpanan stok) barangan adalah sangat biasa. SKU boleh difahami sebagai gabungan atribut berbeza produk, seperti saiz, warna, gaya, dsb. SKU yang berbeza sepadan dengan jumlah inventori yang berbeza dan pelanggan perlu memilih SKU tertentu semasa membeli barangan. Dalam PHP, kami boleh menggunakan tatasusunan untuk mengurus dan memaparkan SKU berbilang spesifikasi produk. Artikel ini akan memperkenalkan pelaksanaan SKU secara terperinci dan memberikan contoh kod yang sepadan. 1. SK

See all articles