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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Service中bindService

    Service中bindService最近有用到Activity需要不断的从Service中获取数据,第一个想法肯定就是通过bind回调机制了,有几点概念模糊特此记录下:单独使用bindService(),unbindService()会经历:->onCreate()->onBind()->Servicerunning->onUnbind()->onDestroy()。单独使用startSer…

    2022年6月10日
    49
  • 用的最多的Android Studio 快捷键「建议收藏」

    用的最多的Android Studio 快捷键

    2022年2月2日
    115
  • 亚马逊跨境电商ERP_跨境电商铺货模式和精品模式

    亚马逊跨境电商ERP_跨境电商铺货模式和精品模式所谓跨境电商ERP,简单来说就是提高效率的工具,节省时间不用去做重复的事情跨境电商ERP系统:亚马逊erp,对接亚马逊、wish、ebay、速卖通、shopify、shopee虾皮、lazada等跨境电商平台。跨境电商ERP源码,跨境电商erp系统源码:亚马逊erp源码、wisherp源码、ebayerp源码、速卖通erp源码、shopifyerp源码、shopee虾皮erp源码、lazada来赞达erp源码。对接亚马逊、wish、ebay、速卖通、shopify、shopee虾皮、lazada等.

    2022年9月2日
    6
  • 学习zencart模板制作[通俗易懂]

    学习zencart模板制作[通俗易懂]

         
        1,在includes/template下面新建个文件夹叫你新
    模板的名字就可以了(名字可以随便给只要你自己知道就
    可以了)这里我就叫yourname
        2,把includes/template/defalut_template
           这个文件夹下面的所有的文件夹和文件复制到你
    刚刚新建的文件夹里面去yourname
        3,把template_info.p

    2022年7月27日
    5
  • linux目录结构详解_linuxiso目录结构

    linux目录结构详解_linuxiso目录结构前言平常linux系统用的也不少,那么linux下的每个目录都是用来干什么的,小伙伴们有仔细研究过吗?让我们来了解下吧Linux系统目录结构登录系统后,在当前命令窗口下输入命令:[root@

    2022年7月29日
    7
  • 2020Web应用防火墙 (WAF)榜单TOP30

    2020Web应用防火墙 (WAF)榜单TOP30WAF市场的发展缘于客户需要保护内外的Web应用程序。WAF保护Web应用程序和API免受各种攻击,包括自动机器人程序、注入攻击和应用层拒绝服务(DoS)攻击。它们应提供基于特征(signature)的防护,还应支持主动安全模型(自动化允许列表)及/或异常检测。Gartner报告曾指出,在保护企业Web应用最有效的技术中,WAF高居首位(73%),成为可显著降低Web应用漏洞风险、满足安全合规和等级保护要求的重要手段。因此WAF市场仍然充满活力,许多提供商声称迎来两位数的强劲增长。Gartner观察到

    2022年6月2日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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