博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

获取视窗高度和元素高度

Posted on 2022-08-18 20:14  Hhuizi  阅读(59)  评论(0编辑  收藏  举报
// 获取视窗高度
export function getClientHeight() {
  var clientHeight = 0;
  if (document.body.clientHeight && document.documentElement.clientHeight) {
    var clientHeight =
      document.body.clientHeight < document.documentElement.clientHeight
        ? document.body.clientHeight
        : document.documentElement.clientHeight;
  } else {
    var clientHeight =
      document.body.clientHeight > document.documentElement.clientHeight
        ? document.body.clientHeight
        : document.documentElement.clientHeight;
  }
  return clientHeight;
}
/**
 * @description: 获取元素高度
 * @param {*} className 元素类名
 * @return {*}
 * @author: 
 */
export function getDomClientHeight(className) {
  const dom = document.getElementsByClassName(className);
  let domHeight = 0;
 // 此为业务代码,若类名唯一可直接
domHeight = dom[0].clientHeight;
if (dom&&dom.length) {
    // 过滤出 display: none 的元素
    let domArr = []
    for(let i=0; i<dom.length; i++) {
      if(dom[i].clientHeight !== 0) domArr.push(dom[i])
    }
    
    domHeight = domArr[domArr.length-1].clientHeight;
  }
  return domHeight;
}