웹 프론트엔드 JS 튜토리얼 브라우저의 시각적 영역_javascript 기술의 크기를 얻기 위한 js 구현 코드

브라우저의 시각적 영역_javascript 기술의 크기를 얻기 위한 js 구현 코드

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 {
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
유什么错误欢迎指출
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

a4용지의 크기는 몇cm인가요? a4용지의 크기는 몇cm인가요? Feb 11, 2024 pm 11:51 PM

A4 용지는 이제 사무실, 서재 등 다양한 장소에서 사용됩니다. 복사에 사용되는 용지는 기본적으로 A4 용지 크기가 몇 cm인지 모르는 친구들이 많습니다. 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

많은 친구들은 자신의 생활 습관을 기록하기 위해 카메라를 사용합니다. 일부 전문 사진가 친구들은 더 선명한 사진을 찍기 위해 SLR 카메라를 사용할 수도 있습니다. 그러나 SLR 카메라로 촬영한 사진은 선명하더라도 수십 메가바이트의 사진이라면 저장 장치에 대한 부담이 가중될 것은 분명합니다. 그렇다면 사진의 디테일을 최대한 유지하면서 사진의 크기를 줄일 수 있는 방법은 없을까? 실제로 이미지를 압축하면 됩니다. 그렇다면 이미지 크기를 압축하는 방법은 무엇입니까? 공유할 수 있는 두 가지 좋은 방법이 있습니다. 방법 1: 별도의 처리 및 편집 없이 이미지를 뷰티 도구로 가져올 수 있습니다. 사진을 저장할 때 시스템은 이미지 품질 조정 옵션을 제공하며 슬라이더를 끌어 유지된 선명도를 조정할 수 있습니다. 예상 크기가 요구 사항을 충족하면 저장을 클릭합니다. 방법 2: ① 먼저 이것을 엽니다.

a5사이즈가 어떻게 되나요? a5사이즈가 어떻게 되나요? Apr 24, 2024 pm 05:53 PM

1. A5 용지는 국제 표준 용지 크기로 크기는 148mm x 210mm(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

화웨이 p40의 크기는 길이 148.9mm, 폭 71.06mm, 두께 8.50mm이며, 무게는 배터리 포함 약 175g이다. 화웨이가 개발한 스마트폰으로 2020년 3월 26일 글로벌 출시됐다. 프로스트(Frost)에서 구매 가능하다. Silver, Dawn Gold, 제로 화이트, 브라이트 블랙, 딥 씨 블루 등 5가지 색상으로 제공되며 프로세서와 베이스밴드를 하나로 결합한 Kirin 9905G SoC 칩을 탑재하고 혁신적으로 설계된 CPU 3단계 에너지 효율 아키텍처, 16 -코어 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