天天看點

JavaScript 基于offsetHeight和clientHeight判斷是否出現滾動條

基于offsetHeight和clientHeight判斷是否出現滾動條

by:授客 QQ:1033553122

HTMLEelement.offsetHeight簡介

HTMLElement.offsetHeight 是一個隻讀屬性,它傳回該元素的像素高度,高度包含該元素的垂直内邊距和邊框,且是一個整數。

通常,元素的offsetHeight是一種元素CSS高度的衡量标準,包括元素的邊框、内邊距和元素的水準滾動條(如果存在且渲染的話),不包含:before或:after等僞類元素的高度。

對于文檔的body對象,它包括代替元素的CSS高度線性總含量高。浮動元素的向下延伸内容高度是被忽略的。

參考連結:https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLElement/offsetHeight

HTMLEelement.clientHeight簡介

這個屬性是隻讀屬性,對于沒有定義CSS或者内聯布局盒子的元素為0,否則,它是元素内部的高度(機關像素),包含内邊距,但不包括水準滾動條、邊框和外邊距。

clientHeight 可以通過 CSS height + CSS padding - 水準滾動條高度 (如果存在)來計算

參考連結:https://developer.mozilla.org/zh-CN/docs/Web/API/Element/clientHeight

HTMLEelement.offsetWidth簡介

是一個隻讀屬性,傳回一個元素的布局寬度。一個典型的(譯者注:各浏覽器的offsetWidth可能有所不同)offsetWidth是測量包含元素的邊框(border)、水準線上的内邊距(padding)、豎直方向滾動條(scrollbar)(如果存在的話)、以及CSS設定的寬度(width)的值。

參考連結:https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLElement/offsetWidth

内聯元素以及沒有 CSS 樣式的元素的 clientWidth 屬性值為 0。Element.clientWidth 屬性表示元素的内部寬度,以像素計。該屬性包括内邊距,但不包括垂直滾動條(如果有)、邊框和外邊距。

參考連結:https://developer.mozilla.org/zh-CN/docs/Web/API/Element/clientWidth

判斷目标元素是否出現滾動條

targetElement為目标html元素,以下代碼用于判斷該元素内是否出現滾動條

if (targetElement.offsetHeight > targetElement.clientHeight &&

    targetElement.offsetWidth > targetElement.clientWidth

) {

    console.log("出現水準 & 垂直滾動條");

}

if (tableBody.offsetWidth > tableBody.clientWidth) {

    console.log("出現垂直滾動條");

if (obj.offsetHeight>obj.clientHeight) {

console.log("出現水準滾動條");

作者:授客

QQ:1033553122

全國軟體測試QQ交流群:7156436

Git位址:https://gitee.com/ishouke

友情提示:限于時間倉促,文中可能存在錯誤,歡迎指正、評論!

作者五行缺錢,如果覺得文章對您有幫助,請掃描下邊的二維碼打賞作者,金額随意,您的支援将是我繼續創作的源動力,打賞後如有任何疑問,請聯系我!!!

           微信打賞                       

支付寶打賞                  全國軟體測試交流QQ群  

JavaScript 基于offsetHeight和clientHeight判斷是否出現滾動條
JavaScript 基于offsetHeight和clientHeight判斷是否出現滾動條
JavaScript 基于offsetHeight和clientHeight判斷是否出現滾動條

繼續閱讀