• IE/FF/Chrome下document.documentElement和document.body的 scrollHeight/scrollTop/clientHeight 以及判断滚动条是否已拉


    DTD已声明
    IE
    document.documentElement.scrollHeight 浏览器所有内容高度 ,document.body.scrollHeight 浏览器所有内容高度
    document.documentElement.scrollTop 浏览器滚动部分高度,document.body.scrollTop 始终为0
    document.documentElement.clientHeight 浏览器可视部分高度,document.body.clientHeight 浏览器所有内容高度

    FF
    document.documentElement.scrollHeight 浏览器所有内容高度 ,document.body.scrollHeight 浏览器所有内容高度
    document.documentElement.scrollTop 浏览器滚动部分高度,document.body.scrollTop 始终为0
    document.documentElement.clientHeight 浏览器可视部分高度,document.body.clientHeight 浏览器所有内容高度

    Chrome
    document.documentElement.scrollHeight 浏览器所有内容高度, document.body.scrollHeight 浏览器所有内容高度
    document.documentElement.scrollTop 始终为0,document.body.scrollTop 浏览器滚动部分高度
    document.documentElement.clientHeight 浏览器可视部分高度,document.body.clientHeight 浏览器所有内容高度

    DTD未声明
    IE
    document.documentElement.scrollHeight 浏览器可视部分高度,document.body.scrollHeight 浏览器所有内容高度
    document.documentElement.scrollTop 始终为0,document.body.scrollTop 浏览器滚动部分高度
    document.documentElement.clientHeight 始终为0,document.body.clientHeight 浏览器可视部分高度

    FF
    document.documentElement.scrollHeight 浏览器可视部分高度, document.body.scrollHeight 浏览器所有内容高度
    document.documentElement.scrollTop 始终为0,document.body.scrollTop 浏览器滚动部分高度
    document.documentElement.clientHeight 浏览器所有内容高度,document.body.clientHeight 浏览器可视部分高度

    Chrome
    document.documentElement.scrollHeight 浏览器可视部分高度,document.body.scrollHeight 浏览器所有内容高度
    document.documentElement.scrollTop 始终为0,document.body.scrollTop 浏览器滚动部分高度
    document.documentElement.clientHeight 浏览器所有内容高度,document.body.clientHeight 浏览器可视部分高度

    浏览器所有内容高度即浏览器整个框架的高度,包括滚动条卷去部分+可视部分+底部隐藏部分的高度总和

    浏览器滚动部分高度即滚动条卷去部分高度即可视顶端距离整个对象顶端的高度。

    综上

    1、document.documentElement.scrollTop和document.body.scrollTop始终有一个为0,所以可以用这两个的和来求scrollTop

    2、scrollHeight、clientHeight 在DTD已声明的情况下用documentElement,未声明的情况下用body

    这里之前有误, document.compatMode 可以用来判断是否声明了DTD, 值为”BackCompat”:未声明,值为”CSS1Compat”:已声明。

    所以,判断滚动条是否已拉到页面最底部,可以用如下代码

    window.onscroll  = function (){
        var marginBot = 0;
        if (document.compatMode === "CSS1Compat"){
            marginBot = document.documentElement.scrollHeight - (document.documentElement.scrollTop+document.body.scrollTop)-  document.documentElement.clientHeight;
        } else {
            marginBot = document.body.scrollHeight - document.body.scrollTop-  document.body.clientHeight;
        }
        if(marginBot<=0) {
            //do something        
        }
    }
  • 相关阅读:
    谈谈surging引擎的tcp、http、ws协议和如何容器化部署
    Surging如何使用Swagger 组件测试业务模块
    Ocelot简易教程(七)之配置文件数据库存储插件源码解析
    [转载]Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据
    [转载]Ocelot简易教程(五)之集成IdentityServer认证以及授权
    [转载]Ocelot简易教程(四)之请求聚合以及服务发现
    [转载]Ocelot简易教程(三)之主要特性及路由详解
    [转载]Ocelot简易教程(二)之快速开始2
    [转载]Ocelot简易教程(二)之快速开始1
    Next Permutation
  • 原文地址:https://www.cnblogs.com/jiandanshishu/p/12953297.html
Copyright © 2020-2023  润新知