最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

視口的寬高與滾動高度_html/css

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 16:39:18
文檔

視口的寬高與滾動高度_html/css

視口的寬高與滾動高度_html/css_WEB-ITnose:很多場景下會需要在JavaScript中獲取窗口或DOM元素的寬高,以及滾動高度。 例如:實現(xiàn)滾動效果、創(chuàng)建全屏布局、動態(tài)絕對定位等等。 本文就來介紹相關的DOM API: window.innerHeight , window.outerHeight , clientHeight , offs
推薦度:
導讀視口的寬高與滾動高度_html/css_WEB-ITnose:很多場景下會需要在JavaScript中獲取窗口或DOM元素的寬高,以及滾動高度。 例如:實現(xiàn)滾動效果、創(chuàng)建全屏布局、動態(tài)絕對定位等等。 本文就來介紹相關的DOM API: window.innerHeight , window.outerHeight , clientHeight , offs

很多場景下會需要在JavaScript中獲取窗口或DOM元素的寬高,以及滾動高度。 例如:實現(xiàn)滾動效果、創(chuàng)建全屏布局、動態(tài)絕對定位等等。 本文就來介紹相關的DOM API: window.innerHeight , window.outerHeight , clientHeight , offsetHeight , scrollHeight , scrollTop 等(當然每個屬性都有對應的Width)。

整個窗口大小

innerHeight與outerHeight

通過 window.innerHeight 和 window.outerHeight 可以得到整個窗口的高度。其中:

  • innerHeight 是DOM視口的大小,包括滾動條。
  • outerHeight 是整個瀏覽器窗口的大小,包括窗口標題、工具欄、狀態(tài)欄等。
  • 把 Height 改為 Width 同樣有效,分別是 innerWidth 和 outerWidth 。

    注意:IE8及以下不支持本節(jié)介紹的 window.innerHeight 等屬性。

    clientHeight

    在不支持 window.innerHeight 的瀏覽器中,可以讀取 documentElement 和 body 的高度, 它們的大小和 window.innerHeight 是一樣的(其實不太一樣,見下一小節(jié))。

    document.documentElement.clientHeightdocument.body.clientHeight

    其中 documentElement 是文檔根元素,就是 標簽。

    The Document.documentElement read-only property returns the Element that is the root element of the document (for example, the element for HTML documents). – MDN

    body 顧名思義就是 標簽了。這兩種方式兼容性較好,可以一直兼容到IE6,就是寫起來費勁。

    最佳實踐

    既然獲取窗口大小存在瀏覽器兼容問題,在實踐中通常使用下面的代碼來兼容所有瀏覽器:

    var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;

    事實上后兩種方式獲取的高度和 window.innerHeight 是不一樣的,這3個屬性的值逐個變小。 具體說來, window.innerHeight 包括整個DOM:內容、邊框以及滾動條。

  • documentElement.clientHeight 不包括整個文檔的滾動條,但包括 元素的邊框。
  • body.clientHeight 不包括整個文檔的滾動條,也不包括 元素的邊框,也不包括 的邊框和滾動條。
  • 其實使用 offsetHeight 作為Fallback要比 clientHeight 更好,更多的討論請見下文。

    滾動高度

    在使用JavaScript控制頁面滾動時(例如回到頂部),需要知道頁面當前滾動到了哪里,以及滾動到的目標是哪里。 這便是滾動高度。這涉及到4個DOM屬性, clientHeight , offsetHeight , scrollHeight , scrollTop 。

    所有DOM元素都有上述4各屬性,只需要給它固定大小并設置 overflow:scroll 即可表現(xiàn)出來。

  • clientHeight : 內部可視區(qū)域大小。

    returns the inner height of an element in pixels, including padding but not the horizontal scrollbar height, border, or margin

  • offsetHeight :整個可視區(qū)域大小,包括border和scrollbar在內。

    is a measurement which includes the element borders, the element vertical padding, the element horizontal scrollbar (if present, if rendered) and the element CSS height.

  • scrollHeight :元素內容的高度,包括溢出部分。

    is a measurement of the height of an element’s content including content not visible on the screen due to overflow

  • scrollTop :元素內容向上滾動了多少像素,如果沒有滾動則為0。

    the number of pixels that the content of an element is scrolled upward.

  • 如下圖:

    對應的橫向屬性為: clientWidth , offsetWidth , scrollWidth , scrollLeft 。

    參考閱讀

  • Window - W3School: http://www.w3school.com.cn/js/js_window.asp
  • Window.innerHeight - MDN: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/innerHeight
  • Element.clientWidth - MDN: https://developer.mozilla.org/en-US/docs/Web/API/Element/clientHeight
  • Document.documentElement - MDN: https://developer.mozilla.org/en-US/docs/Web/API/Document/documentElement
  • Document.body - MDN: https://developer.mozilla.org/en-US/docs/Web/API/Document/body
  • 聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    視口的寬高與滾動高度_html/css

    視口的寬高與滾動高度_html/css_WEB-ITnose:很多場景下會需要在JavaScript中獲取窗口或DOM元素的寬高,以及滾動高度。 例如:實現(xiàn)滾動效果、創(chuàng)建全屏布局、動態(tài)絕對定位等等。 本文就來介紹相關的DOM API: window.innerHeight , window.outerHeight , clientHeight , offs
    推薦度:
    標簽: html 高度 的高度
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top