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

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

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

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

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

(0)


相关推荐

  • 集合转成数组的方法_数组转化为集合

    集合转成数组的方法_数组转化为集合1.转换方法1.遍历的方式,依次添加到集合中。2.Arrays.asList()方法3.List.of()方法4.Collections.addAll(集合,数组)方法,将集合存储到数组中1.1遍历的方式这种方式转换成的集合,集合长度可变,可以后续向集合添加数据int[]i={1,5,8,7,11,52};//1.遍历的方式Listlist=newArrayList();for(intx:i){

  • 微软必应从.NET Core 2.1获得了性能提升

    微软必应从.NET Core 2.1获得了性能提升

  • MySQL 8.0 新特性:引人注目的哈希连接(Hash Join)

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:不剪发的Tony老师 blog.csdn.net/horses/article/details/1026900…

  • linux快捷键(mac版)

    linux快捷键(mac版)控制台快捷键command+a:回到命令开头command+e:回到命令结尾command+u:删除前面所有内容vim快捷键普通模式移动到第一行:gg移动到最后一行:G移动到第几行:数字+G向下移动几行:数字+enter到当前行第几个字符:数字+space查找字符串:/+字符串ZZ显示行号:(:setnu)替换:(:n1,n2/s/word1/word2/gc),$s代表行尾撤销/重做:u/ctrl+rnyy:向下复制多行p:在下一行粘

  • 用U盘ghost备份win10系统操作流程_ghost全盘备份还原

    用U盘ghost备份win10系统操作流程_ghost全盘备份还原使用pe进行备份1、这里我使用了老毛桃的pe系统2、备份分区3、选中要备份的硬盘4、选择备份的分区按下shift按键,可以同时选中EFISystem分区和C盘系统分区。5、选择保存位置选择保存的位置,以及文件名称,这里最好保存到一个文件夹下,因为备份的文件可能会是多个。6、等待备份完成还原系统1、新电脑上建立分区选中空硬盘,点击新建分区,最后建立出来ESP\MSR\系统分区。在建立ESP分区的时候可以分配一个盘符,否则还原系统时,可能看不到这个分区。2、开始

  • Windows 10 下,强制关闭端口

    Windows 10 下,强制关闭端口Windows10下,端口被占用或程序已关闭端口没有正常关闭时,强制关闭端口这种方法的前提是知道被占用的端口号这是我用的一种方法1、打开命令窗口,根据端口号查询这个端口号的PID,以端口号9001为例进入命令窗口执行命令netstat-ano|findstr”9001″如下图查询到端口9001对应的pid为566322、根据查出来的pid强制关闭这个端口号命令…

发表回复

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

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