scrollHeight、scrollTop等的比较[通俗易懂]

scrollHeight、scrollTop等的比较[通俗易懂]自接触js以来一直使用的是jquery插件,对js的了解甚少,经常容易混淆element.scrollHeight、element.scrollTop等方法。今天对这些方法做出比较。scrollTop:可以设置或者获取元素的已滚动的上部不可见区域的高度。<!DOCTYPEhtml><html><head><title&gt…

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

自接触js以来一直使用的是jquery插件,对js的了解甚少,经常容易混淆element.scrollHeight、element.scrollTop等方法。今天对这些方法做出比较。

scrollTop:可以设置或者获取元素的已滚动的上部不可见区域的高度。

<!DOCTYPE html>
<html>
<head>
    <title>测试scrollHeight等的区别</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <style type="text/css">
        body{
    
    
            padding: 0px;
            margin: 0px;
        }
        #test{
    
    
            width: 200px;
            height: 200px;
            border: 1px solid #cccccc;
            overflow-y: auto;
            margin: 300px auto;
        }
        #test p{
    
    
            height: 20px;
            margin: 0px;

        }
    </style>
</head>
<body>
    <div id="test"><div><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p></div></div>
</body>
</html>

上面,有一个id为test的div,里面嵌套一个div和多个p标签。

var element = document.getElementById("test");
    var p = element.getElementsByTagName("p");
    var pL = p.length;
    for(var i=1; i<=pL; i++){
        p[i-1].className = "p" + i;
    }
    element.scrollTop = 300;
    console.log("element's scrollTop = " + element.scrollTop);

scrollHeight、scrollTop等的比较[通俗易懂]第七行代码设置了scrollTop,第八行输出了scrollTop,输出值为: element’s scrollTop = 300。蓝色部分为test里层的div所占的区域。

scrollHeight:获取元素的滚动高度。当元素内容高度超出元素高度时,scrollHeight=内容高度+自身高度。

offsetHeight:获取元素的实际高度。element.offsetHeight = element.clientHeight + border-top + border-bottom。

offsetTop:获取元素相对于离自己最近的设置定位的祖先元素的高度,如果没有,则获取相对于页面的高度。

clientHeight:获取元素的可见高度。element.clientHeight = element.height + element.padding-top + element.padding-bottom。

 

补充:

1:获取元素的不包括padding和border的宽高度,使用js获取css样式的方法获取。

2:获取元素下面可滚动的高度值: element.scrollHeight – element.clientHeight – element.scrollTop;

 

希望看到这篇文章的同学,多多指出里面的理解不当的地方。有更好的方法,可以与我分享。

 

转载于:https://www.cnblogs.com/yanyalun/p/4184343.html

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

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

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


相关推荐

  • win10键锁定计算机,win10系统创建一键锁定计算机的快捷方式的操作方法

    win10键锁定计算机,win10系统创建一键锁定计算机的快捷方式的操作方法win10系统创建一键锁定计算机的快捷方式的操作方法?很多win10用户在使用电脑的时候,会发现win10系统创建一键锁定计算机的快捷方式的的现象,根据小编的调查并不是所有的朋友都知道win10系统创建一键锁定计算机的快捷方式的的问题怎么解决,不会的朋友也不用担心,下面我就给大家讲解一下win10系统创建一键锁定计算机的快捷方式的的少许解决办法,其实步骤很简单,只需要1、首先在桌面上的空白处鼠标右…

    2022年7月21日
  • 合成控制法(SyntheticControlMethod)及Stata实现[通俗易懂]

    合成控制法(SyntheticControlMethod)及Stata实现[通俗易懂]原文链接:https://www.lianxh.cn/news/9e1bb97a57041.html目录1.背景介绍 2.合成控制法原理 3.合成控制法的Stata实现 3.1命令安装 3.2语法格式 3.3加州控烟案例 3.4房产税对产业转移的影响:来自重庆和上海的经验证据 4.安慰剂检验 4.1安慰剂检验一 4.2安慰剂检验二 5.参考资料推文介绍合成控制方法及其Stata的实现命令。合成控制方法(Syntheti

    2022年6月10日
  • vscode怎么html和php混编,vscode如何编译运行html文件[通俗易懂]

    vscode怎么html和php混编,vscode如何编译运行html文件[通俗易懂]首先打开我们的VSCode软件,然后新建一个HTML文件,注意,在VSCode软件里面新建一个文件,它的后缀名也必须写上这时候我们写好HTML内容之后,鼠标右键,发现没有运行HTML文件的按钮我们需要点击VSCode软件左边的“扩展”,或者同时按住键盘上的Ctrl+shift+I键进入“扩展”界面进入“扩展”界面之后,我们在搜索框内输入“open”,然后找到“openinbrowser…

    2022年8月21日
  • mysql 驱动jar包下载_mysql驱动jar包

    mysql 驱动jar包下载_mysql驱动jar包mysql驱动就是赋值外界与数据的连接接口。请注意JDBC连接MySql,其驱动程序与MySQL的版本有关!!要使用相匹配的驱动程序,并将驱动程序加到CLASSPATH中。在系FTP服务器上,/数据库/MySql目录下的驱动程序如下:MySql5.0 驱动程序包为mysql-connector-java-5.0.4.zip(内有.jar文件即驱动程序)MySql4.0 驱动程序为mysqldriv…

    2022年5月22日
  • linux下手动释放内存

    linux下手动释放内存

    2021年8月20日
  • function_exists与method_exists区别

    function_exists与method_exists区别1.method_exists—检查类的方法是否存在说明method_exists(mixed$object,string$method_name):bool检查类的方法是

    2022年7月1日

发表回复

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

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