滾動條出現的原理


總結

  • 容器元素的 clientWidth 小於 scrollWidth 時,在容器元素上會出現滾動條。
  • 容器元素的 scrollWidth 等於內部元素的 clientWidth
  • 由於 clientWidth 不包含滾動條,所以當滾動條已存在時。即使容器的寬度能完全展示內部元素,滾動條依然會存在。即只有當內部元素的寬度 = 容器 clientWidth + 滾動條寬度時滾動條才消失。

Element

  • Element 是一個通用性非常強的基類,所有 Document 對象下的對象都繼承自它。這個接口描述了所有相同種類的元素所普遍具有的方法和屬性。一些接口繼承自 Element 並且增加了一些額外功能的接口描述了具體的行為。例如, HTMLElement 接口是所有 HTML 元素的基本接口,而 SVGElement 接口是所有 SVG 元素的基礎。
  • clientWidth 表示該元素內部的寬度
    • 該屬性包括內邊距,但不包括垂直滾動條(如果有)、邊框和外邊距。
    • 該屬性值會被四舍五入為一個整數。如果你需要一個小數值,可使用element.getBoundingClientRect()
  • scrollWidth 表示元素的滾動視圖寬度
    • 包括由於overflow溢出而在屏幕上不可見的內容。
    • 它包含元素的內邊距,但不包括邊框,外邊距或垂直滾動條(如果存在)
    • 包括偽元素的寬度,例如::before或::after
    • 這個屬性會進行四舍五入並返回整數,如果你需要小數形式的值,使用element.getBoundingClientRect().
  • 如果元素的內容可以適合而不需要水平滾動條,則其scrollWidth等於clientWidth

HTMLElement

  • HTMLElement 接口表示所有的 HTML 元素。
  • offsetWidth 元素自身可視寬度加上左右border的寬度
    • 各瀏覽器的offsetWidth可能有所不同
    • offsetWidth是測量包含元素的邊框(border)、水平線上的內邊距(padding)、豎直方向滾動條(scrollbar)(如果存在的話)、以及CSS設置的寬度(width)的值。
    • 這個屬性將會 round(四舍五入)為一個整數。如果你想要一個fractional(小數)值,請使用element.getBoundingClientRect().


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM