zoukankan      html  css  js  c++  java
  • js 判断滚动条 是否滚动到底部

    解决问题思路

    滚动条距离上面的滚动高度(scrollTop) + 滚动条本身高度 = 整个页面的高度(pageHeight)

    关键点:滚动条本身高度是多少

    事实上,这里就有一个思想误区,人会想直接获取滚动条高度(但找不到这个API,同时滚动条表现出来的高度,也会虽内容变长变短)。

    其实你只要考虑一下,为什么会出现滚动条。出现滚动条代表超出可视窗口,它的滚动距离就是超出部分,而可视窗口高度就是滚动条对应的真实高度

     //滚动条距离顶部高度
            function getScrollTop() {
                var scrollTop=0;
                if(document.documentElement&&document.documentElement.scrollTop) {
                    scrollTop=document.documentElement.scrollTop;
                }
                else if(document.body)  {
                    scrollTop= document.body.scrollTop;
                }
                return  Math.ceil(scrollTop);
            }
    
            //滚动条本身高度:就是可视窗口高度
            function getScrollBarHeight(){
                let scrollBarHeight = document.documentElement.clientHeight;
                return Math.ceil(scrollBarHeight);
            }
            
            //整个页面高度
            function getPageHeight()  {
                return Math.ceil(Math.max(document.body.clientHeight,document.documentElement.scrollHeight));
            }
    
    
            window.onscroll = function () {
                let top = getScrollTop();
                let ch = getScrollBarHeight();
                let sh = getPageHeight();
                if (top + ch >= sh) {
                    console.log("到达底部");
                }else{
                   console.log("没有到达底部");
                }
            }
  • 相关阅读:
    关内存地址的分配
    关于URL
    linux的8小时差问题解决
    关于Scanner类
    域名后缀
    匿名对象用法
    final修饰符,多态,抽象类,接口
    二维数组的传参
    关于随机数
    面向对象编程的三大基本特征
  • 原文地址:https://www.cnblogs.com/tengyuxin/p/15222393.html
Copyright © 2011-2022 走看看