日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JS 获取浏览器窗口大小

發布時間:2025/3/15 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS 获取浏览器窗口大小 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JS 獲取瀏覽器窗口大小

<script>// 獲取窗口寬度if (windows.innerWidth) {winWidth = windows.innerWidth;} else if ((document.body) && (document.body.clientWidth)) {winWidth = document.body.clientWidth;}// 獲取窗口高度if (windows.innerHeight) {winHeight = windows.innerHeight;} else if ((document.body) && (document.body.clientHeight)) {winHeight = document.body.clientHeight;}// 通過深入 Document 內部對 body 進行檢測,獲取窗口大小if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth) {winHeight = document.documentElement.clientHeight;winWidth = document.documentElement.clientWidth;}</script>

?window對象:

  (1)innerHeight屬性:窗口中文檔顯示區域的高度,不包括菜單欄、工具欄等部分。該屬性可讀可寫。

????  ?IE不支持該屬性,IE中body元素的clientHeight屬性與該屬性相同。

  (2)innerWidth屬性:窗口中文檔顯示區域的寬度,同樣不包括邊框。該屬性可讀可寫。

???  ??IE不支持該屬性,IE中body元素的clientWidth屬性與該屬性相同。

???  ??clientHeight與clientWidth屬性是只讀的。

????  ?另外,IE不支持outerWidth、outerHeight屬性。

  ?(3)pageXOffset屬性:整數只讀屬性,表示文檔向右滾動過的像素數。

??  ???IE不支持該屬性,使用body元素的scrollLeft屬性替代。

  ?(4)pageYOffset屬性:整數只讀屬性,表示文檔向下滾動過的像素數。

???  ??IE不支持該屬性,使用body元素的scrollTop屬性替代。

documentElement 和 body 相關說明:

body是DOM對象里的body子節點,即 <body> 標簽;
  documentElement 是整個節點樹的根節點root,即<html> 標簽;

兼容IE與DOM瀏覽器,如何獲取窗口中文檔顯示區域的寬度及高度,還可以使用?:條件語句,如下:

  windows.innerWidth?? windows.innerWidth?: document.body.clientWidth;

  windows.innerHeight?? windows.innerHeight?: document.body.clientHeight;

document.body.clientWidth 和 document.documentElement.clientWidth 在不同瀏覽器的差異:

  如果定義了W3C的標準

  在IE中:
    document.body.clientWidth ==> BODY對象寬度
    document.body.clientHeight ==> BODY對象高度
    document.documentElement.clientWidth ==> 可見區域寬度
    document.documentElement.clientHeight ==> 可見區域高度
  在FireFox中:
    document.body.clientWidth ==> BODY對象寬度
    document.body.clientHeight ==> BODY對象高度
    document.documentElement.clientWidth ==> 可見區域寬度
    document.documentElement.clientHeight ==> 可見區域高度
  在Opera中:
    document.body.clientWidth ==> 可見區域寬度
    document.body.clientHeight ==> 可見區域高度
    document.documentElement.clientWidth ==> 頁面對象寬度(即BODY對象寬度加上Margin寬)
    document.documentElement.clientHeight ==> 頁面對象高度(即BODY對象高度加上Margin高)

  而如果沒有定義W3C的標準,則

  IE為:
    document.documentElement.clientWidth ==> 0
    document.documentElement.clientHeight ==> 0
  FireFox為:
    document.documentElement.clientWidth ==> 頁面對象寬度(即BODY對象寬度加上Margin寬)document.documentElement.clientHeight ==> 頁面對象高度(即BODY對象高度加上Margin高)
  Opera為:
    document.documentElement.clientWidth ==> 頁面對象寬度(即BODY對象寬度加上Margin寬)document.documentElement.clientHeight ==> 頁面對象高度(即BODY對象高度加上Margin高)

?

網頁可見區域寬: document.body.clientWidth;

網頁可見區域高: document.body.clientHeight;

網頁可見區域寬: document.body.offsetWidth (包括邊線的寬);

網頁可見區域高: document.body.offsetHeight (包括邊線的寬);

網頁正文全文寬: document.body.scrollWidth;

網頁正文全文高: document.body.scrollHeight;

網頁被卷去的高(在垂直方向上滾動了多少): document.body.scrollTop;

網頁被卷去的左(在水平方向上滾動了多少): document.body.scrollLeft;

網頁正文部分上: window.screenTop;

網頁正文部分左: window.screenLeft;

屏幕分辨率的高: window.screen.height;

屏幕分辨率的寬: window.screen.width;

屏幕可用工作區高度: window.screen.availHeight;

屏幕可用工作區寬度:window.screen.availWidth;

?

IE:

  scrollHeight: 獲取對象的滾動高度。

  scrollLeft:設置或獲取位于對象左邊界和窗口中目前可見內容的最左端之間的距離

  scrollTop:設置或獲取位于對象最頂端和窗口中可見內容的最頂端之間的距離

  scrollWidth:獲取對象的滾動寬度

  offsetHeight:獲取對象相對于版面或由父坐標 offsetParent 屬性指定的父坐標的高度

  offsetLeft:獲取對象相對于版面或由 offsetParent 屬性指定的父坐標的計算左側位置

  offsetTop:獲取對象相對于版面或由 offsetTop 屬性指定的父坐標的計算頂端位置

  event.clientX:相對文檔的水平座標

  event.clientY:相對文檔的垂直座標

  event.offsetX:相對容器的水平坐標

  event.offsetY:相對容器的垂直坐標

  document.documentElement.scrollTop:垂直方向滾動的值

  event.clientX+document.documentElement.scrollTop:相對文檔的水平座標+垂直方向滾動的量

以上主要指IE之中,FireFox差異如下:

  IE6.0、FF1.06+:

  clientWidth = width + padding

  clientHeight = height + padding

  offsetWidth = width + padding + border

  offsetHeight = height + padding + border

  IE5.0/5.5:

  clientWidth = width - border

  clientHeight = height - border

  offsetWidth = width

  offsetHeight = height

  (需要提一下:CSS中的margin屬性,與clientWidth、offsetWidth、clientHeight、offsetHeight均無關)

?

假設 obj 為某個 HTML 控件:

  obj.offsetTop 指 obj 相對于版面或由 offsetParent 屬性指定的父坐標的計算上側位置,整型,單位像素。

  obj.offsetLeft 指 obj 相對于版面或由 offsetParent 屬性指定的父坐標的計算左側位置,整型,單位像素。

  obj.offsetWidth 指 obj 控件自身的絕對寬度,不包括因 overflow 而未顯示的部分,也就是其實際占據的寬度,整型,單位像素。

  obj.offsetHeight 指 obj 控件自身的絕對高度,不包括因 overflow 而未顯示的部分,也就是其實際占據的高度,整型,單位像素。

  我們對前面提到的 offsetParent 作個說明。

  offsetParent 獲取定義對象 offsetTop 和 offsetLeft 屬性的容器對象的引用。offsetTop 與 offsetParent 很復雜,不同瀏覽器有不同解釋,浮動一下解釋又不同了,所以我們一般只要理解通過二者可以獲得控件在瀏覽器中的絕對位置即可。

  以上屬性在 FireFox 中也有效。

  另外:我們這里所說的是指 HTML 控件的屬性值,并不是 document.body,document.body 的值在不同瀏覽器中有不同解釋(實際上大多數環境是由于對 document.body 解釋不同造成的,并不是由于對 offset 解釋不同造成的)

?

我們知道 offsetTop 可以獲得 HTML 元素距離上方或外層元素的位置,style.top 也是可以的,二者的區別是:

  一、offsetTop 返回的是數字,而 style.top 返回的是字符串,除了數字外還帶有單位:px。

  二、offsetTop 只讀,而 style.top 可讀寫。

  三、如果沒有給 HTML 元素指定過 top 樣式,則 style.top 返回的是空字符串。

  offsetLeft 與 style.left、offsetWidth 與 style.width、offsetHeight 與 style.height 也是同樣道理。

?

clientHeight
  大家對 clientHeight 都沒有什么異議,都認為是內容可視區域的高度,也就是說頁面瀏覽器中可以看到內容的這個區域的高度,一般是最后一個工具條以下到狀態欄以上的這個區域,與頁面內容無關。

offsetHeight
  IE、Opera 認為 offsetHeight = clientHeight + 滾動條 + 邊框。
  NS、FF 認為 offsetHeight 是網頁內容實際高度,可以小于 clientHeight。

scrollHeight
  IE、Opera 認為 scrollHeight 是網頁內容實際高度,可以小于 clientHeight。
  NS、FF 認為 scrollHeight 是網頁內容高度,不過最小值是 clientHeight。

簡單地說,clientHeight 就是透過瀏覽器看內容的這個區域高度。
  NS、FF 認為 offsetHeight 和 scrollHeight 都是網頁內容高度,只不過當網頁內容高度小于等于 clientHeight 時,scrollHeight 的值是 clientHeight,而 offsetHeight 可以小于 clientHeight。
  IE、Opera 認為 offsetHeight 是可視區域?clientHeight 滾動條加邊框。scrollHeight 則是網頁內容實際高度。

  同理:clientWidth、offsetWidth 和 scrollWidth 的解釋與上面相同,只是把高度換成寬度即可。

  說明:以上基于 DTD HTML 4.01 Transitional,如果是 DTD XHTML 1.0 Transitional 則意義又會不同,在 XHTML 中這三個值都是同一個值,都表示內容的實際高度。新版本的瀏覽器大多支持根據頁面指定的 DOCTYPE 來啟用不同的解釋器

IE 和 FireFox 全面支持,而 Netscape 8?和 Opera 7.6?不支持 scrollTop、scrollLeft(document.body.scrollTop、document.body.scrollLeft 除外)。

?

1.clientHeight, clientWidth:
這兩個屬性大體上顯示了元素內容的象素高度和寬度.理論上說這些測量不考慮任何通過樣式表加入
元素中的頁邊距,邊框等.

2.clientLeft,clientTop:
這兩個返回的是元素周圍邊框的厚度,如果不指定一個邊框或者不定位改元素,他的值就是0.

3.scrollLeft,scrollTop:
如果元素是可以滾動的,可以通過這倆個屬性得到元素在水平和垂直方向上滾動了多遠,單位是象素.
對于不可以滾動的元素,這些值總是0.

4.scrollHeight,scrollWidth:
不管有多少對象在頁面上可見,他們得到的是整體.

5.style.left:
定位元素與包含它的矩形左邊界的偏移量

6.style.pixelLeft:
返回定位元素左邊界偏移量的整數像素值.因為屬性的非像素值返回的是包含單位的字符串,例如,30px. 利用這個屬性可以單獨處理以像素為單位的數值.

7.style:posLetf:
返回定位元素左邊界偏移量的數量值,不管相應的樣式表元素指定什么單位.因為屬性的非位置值返回的是包含單位的字符串,例如,1.2em??
??
LEFT:?? 為從左向右移的位置,即掛件距離屏幕左邊緣的距離;
clientLeft?? 返回對象的offsetLeft屬性值和到當前窗口左邊的真實值之間的距離
offsetLeft?? 返回對象相對于父級對象的布局或坐標的left值,就是以父級對象左上角為坐標原點,向右和向下為X、Y軸正方向的x坐標
pixelLeft?? 設置或返回對象相對于窗口左邊的位置
scrollWidth 是對象的實際內容的寬,不包邊線寬度,會隨對象中內容的多少改變(內容多了可能會改變對象的實際寬度)。
clientWidth 是對象可見的寬度,不包滾動條等邊線,會隨窗口的顯示大小改變。
offsetWidth 是對象的可見寬度,包滾動條等邊線,會隨窗口的顯示大小改變

?

轉載于:https://www.cnblogs.com/jiangtengteng/p/5368128.html

總結

以上是生活随笔為你收集整理的JS 获取浏览器窗口大小的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产无遮挡又黄又爽 | 成人午夜福利一区二区 | 成人二区三区 | 欧美色图12p| 亚洲精品视频免费看 | 久久视频在线观看 | 黄色片网站大全 | 69**夜色精品国产69乱 | 国产吞精囗交免费视频网站 | 久操视频免费看 | 在线免费福利视频 | 妓院一钑片免看黄大片 | 张津瑜国内精品www在线 | 成人午夜视频在线观看 | 精品国产乱码久久久久久久 | 亚洲经典一区二区三区 | av黄色天堂 | 91 久久| 人妻丰满熟妇岳av无码区hd | 国产情侣自拍小视频 | 99riAv国产精品无码鲁大师 | 国产精品久久久久久久久久直播 | 日韩一区二区中文字幕 | 婷婷综合另类小说色区 | 小辣椒导航 | 性一级视频 | 国产精品成人69xxx免费视频 | 国产日韩免费 | 欧美巨大乳| 欧美精品一二三区 | av手机| 日韩欧美亚洲一区二区 | 男女激情网址 | 91视频日本 | 久久福利电影 | 国产精品老牛影院99av | caoprom97| 91二区 | 97精品一区二区三区 | 伦理片波多野结衣 | www..com国产| 亚洲欧美国产一区二区三区 | 青青在线精品 | 男女视频一区 | 三级视频黄色 | 91福利免费视频 | 国产一区精品视频 | 真实乱视频国产免费观看 | 夜夜干夜夜 | 亚洲视频图片小说 | 日韩日日夜夜 | 国产一区二区视频在线播放 | 国产精品区在线观看 | 激情视频免费在线观看 | 最新国产毛片 | 99热com| 久久久久久久久久久久久久久 | 毛片视频观看 | 久久精品视频91 | 日韩在线一区视频 | 欧美日韩中文视频 | 国产视频一区二区三区在线播放 | 国产精品高潮呻吟久久av黑人 | 探花国产精品一区二区 | 欧美亚洲国产视频 | 99视频免费| 国产乱码精品 | 国产精品伦理一区 | 我的邻居在线观看 | 亚洲人视频在线观看 | 欧亚成人av| 黄色链接视频 | zzji欧美大片 | 欧洲亚洲视频 | 婷婷一区二区三区四区 | 人人妻人人澡人人爽精品欧美一区 | 在线观看一区二区三区视频 | 快播91| 亚洲精品久| 欧美日a| jizz18欧美18 | 另类三区 | 激情文学久久 | 草草在线观看视频 | 激情亚洲网 | 在线免费观看av网址 | av高清在线观看 | 日本欧美在线 | 天堂网91| 久久久久久蜜桃一区二区 | av在线播放一区二区三区 | 亚洲乱码一区 | 手机看片1024日韩 | 大桥未久在线视频 | 91久久亚洲 | 久久r| 国产成人传媒 | 亚洲午夜久久久久久久久红桃 | 日日摸日日添日日躁av |