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
htmleelement.clientheight简介
内联元素以及没有 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("出现水平滚动条");
}
下一篇: uni-app ios 苹果真机运行