首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >scrollTop和scrollHeight「建议收藏」

scrollTop和scrollHeight「建议收藏」

作者头像
全栈程序员站长
发布2022-09-15 11:14:20
发布2022-09-15 11:14:20
1.1K0
举报

大家好,又见面了,我是你们的朋友全栈君。

scollTop

scrollTop 可以被设置为任何整数值,同时注意:

  • 如果一个元素不能被滚动(例如,它没有溢出,或者这个元素有一个”non-scrollable”属性), scrollTop将被设置为0。
  • 设置scrollTop的值小于0,scrollTop 被设为0
  • 如果设置了超出这个容器可滚动的值, scrollTop 会被设为最大值.

总结:元素发生溢出时可以设置scrollTop,设置的值为元素里内容向上滚动的不可见区域的高度

scollHeight

判定元素是否滚动到底

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

代码语言:javascript
复制
element.scrollHeight - element.scrollTop === element.clientHeight

总结:当元素无溢出时为元素本身的高度,当元素发生溢出时为元素内容里面的总高度

例子:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>scroll</title>
  <style type="text/css">
    #box{
        width: 200px;
        height: 200px;
        border: 1px solid green;
        position: absolute;
        top: 350px;
        left: 0;
    }
  </style>
</head>

<body>
  <div id="scrollBody" style="position:absolute;top:0;bottom:0;left:0;right:0;overflow:scroll;height:300px;border: 1px solid red;">
    <div style="font-size:20px;height:100px;border: 1px solid orange;">
        1
    </div>
    <div style="font-size:20px;height:100px;border: 1px solid orange;">
        2
    </div>
    <div style="font-size:20px;height:100px;border: 1px solid orange;">
        3
    </div>
    <div style="font-size:20px;height:100px;border: 1px solid orange;">
        4
    </div>
    <div style="font-size:20px;height:100px;border: 1px solid orange;">
        5
    </div>
  </div>
  <div id="box"></div>
  <div style="position:relative;top:350px;">
    <button onClick="scrollToTop()">按钮1</button>
    <button onClick="read()">按钮2</button>
  </div>
  <script>
    console.log(document.getElementById('scrollBody').scrollHeight); //510
      function scrollToTop(){
        //   这里边可以写一些逻辑,比如偶数行一个一个的置顶,不如状态等于0的一个一个的置顶!
          document.getElementById('scrollBody').scrollTop = 200;
          console.log(document.getElementById('scrollBody').scrollTop)  // 200
      }
      function read(){
        console.log(document.getElementById('box').scrollHeight); // 200
      }
  </script>
</body>

</html>

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163721.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档