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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Scrapy 爬虫框架[通俗易懂]

    Scrapy 爬虫框架[通俗易懂]Scrapy爬虫框架1.概述​ Scrapy是一个可以爬取网站数据,为了提取结构性数据而编写的开源框架。Scrapy的用途非常广泛,不仅可以应用到网络爬虫中,还可以用于数据挖掘、数据监测以及自动化测试等。Scrapy是基于Twisted的异步处理框架,架构清晰、可扩展性强,可以灵活完成各种需求。​ 在Scrapy的工作流程中主要包括以下几个部分:​ §ScrapyEngine(框架的引擎):用于处理整个系统的数据流,触发各种事件,是整个框架的核心。​ §Scheduler(调度器

    2022年10月27日
  • 华为ensp安装步骤_网购200多的平板电脑靠谱吗

    华为ensp安装步骤_网购200多的平板电脑靠谱吗华为ENSP安装教程有需要的请点击这个连接下载自行下载:https://pan.baidu.com/s/1ORprW88r5RBKfHFmEzimow?pwd=0118提取码:0118下载好了可以看到以下这四个程序:软件安装顺序:WinPcap、Wireshark、VirtualBox、eNSP前三个建议均采用默认安装路径安装特别提示:不准出现中文路径,如果可以四个都默认安装路径的话,那最好!注………..

    2022年10月15日
  • LSTM详解 反向传播公式推导[通俗易懂]

    LSTM详解 反向传播公式推导[通俗易懂]部分参考:http://colah.github.io/posts/2015-08-Understanding-LSTMs/1.结构1.1比较RNN:LSTM:其中的notation:1.2核心思想:LSTM在原来的隐藏层上增加了一个ThekeytoLSTMsisthecellstate,thehorizont…

    2022年5月10日
  • 人人工势场法

    人人工势场法人工势场法是局部路径规划的一种比较常用的方法。这种方法假设机器人在一种虚拟力场下运动。一、简介如图所示,机器人在一个二维环境下运动,图中指出了机器人,障碍和目标之间的相对位置。 这个图比较清晰的说明了人工势场法的作用,物体的初始点在一个较高的“山头”上,要到达的目标点在“山脚”下,这就形成了一种势场,物体在这种势的引导下,避开障碍物,到达目标点。

    2022年6月15日
  • 挖矿病毒攻击的排查处置手册

    挖矿病毒攻击的排查处置手册一、背景在用户不知情或未经允许的情况下,占用系统资源和网络资源进行挖矿,影响用户的网络和资源,从而获取虚拟币牟利。为了帮助应对恶意挖矿程序攻击,发现和清除恶意挖矿程序,防护和避免感染恶意挖矿程序,整理了如下针对挖矿活动相关的现状分析和检测处置建议。二、为什么会感染恶意挖矿程序通常遇到企业内网主机感染恶意挖矿程序,或者网站、服务器以及使用的云服务被植入恶意挖矿程序的时候,都不免提出“为什么会感染恶意挖矿程序,以及是如何感染的”诸如此类的问题,目前感染恶意挖矿程序的主要方式:2.1.利用类似其他病毒木

    2022年5月29日
  • WEB3.0白皮书[通俗易懂]

    WEB3.0白皮书[通俗易懂]I//Part1新浪潮//那么Web3.0究竟是什么?TA能给当今世界带来什么变化?TA由哪些技术组成?如何实现Web3.0?TA能带来哪些机会?我们能从中得到什么?Web3.0是一个非常前沿的话题,充满了不确定性,也没有任何人能准确预测她何时到来,会以何种形式到来。但趋势已现,仅以此文抛砖引玉,希望与志同道合者一起推动。Web…

    2022年5月15日

发表回复

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

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