scrollTop和scrollHeight「建议收藏」

scrollTop和scrollHeight「建议收藏」scollTopscrollTop可以被设置为任何整数值,同时注意:如果一个元素不能被滚动(例如,它没有溢出,或者这个元素有一个”non-scrollable”属性),scrollTop将被设置为0。设置scrollTop的值小于0,scrollTop被设为0如果设置了超出这个容器可滚动的值,scrollTop会被设为最大值.总结:元素发生溢出时可以设置scrollT…

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

scollTop

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

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

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

scollHeight

判定元素是否滚动到底

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

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

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

例子:

<!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>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号