js获取元素的高度

获取元素的高度

style.height

包括元素的滚动条,不包括边框,值为string,带单位px

使用style.height最坑的就是height必须使用行内样式,使用内联式和外嵌式是不行的

  1. height在<style>标签中设置,使用style.height是获取不到值的
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div {
            height: 100px;
        }
    </style>
</head>
<body>
<div class="div">
    hello world
</div>
<script>
	let div = document.querySelector(".div");
	console.log(div.style.height);
</script>
</body>
</html>
  1. 使用外部导入的css同样也获取不到

  2. 只有在行内才能获取到值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div class="div" style="height: 100px;border: 1px soled #000;">
    hello world
</div>
<script>
	let div = document.querySelector(".div");
	//输出的是100px,并不是102px
	console.log(div.style.height);
</script>
</body>
</html>

clientHeight

这个属性是只读属性,对于没有定义CSS或者内联布局盒子的元素为0,否则,它是元素内部的高度(单位像素),包含内边距,但不包括水平滚动条、边框和外边距。

clientHeight 可以通过 CSS height + CSS padding - 水平滚动条高度 (如果存在)来计算.

不包括元素的滚动条和边框,值为number,不是string,即不带px

可以使行内、内联和外嵌

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div {
            height: 100px;
            border: 1px solid #000;
        }

    </style>
</head>
<body>
<div class="div">
    hello world
</div>
<script>
    let div = document.querySelector(".div");
    console.log(div.clientHeight);
</script>
</body>
</html>

offsetHeight

HTMLElement.offsetHeight是一个只读属性,它返回该元素的像素高度,高度包含该元素的垂直内边距和边框,且是一个整数

包括元素的滚动条和边框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div {
            height: 100px;
            border: 1px solid #000;
        }

    </style>
</head>
<body>
<div class="div">
    hello world
</div>
<script>
    let div = document.querySelector(".div");
    console.log(div.offsetHeight);
</script>
</body>
</html>

scrollHeight

用于判定元素是否滚动到底

运用

如果元素滚动到底,下面等式返回true,没有则返回false

element.scrollHeight - element.scrollTop === element.clientHeight

  • 11
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值