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("没有到达底部");
                }
            }
  • 相关阅读:
    关于 Lazy<T>
    silverlight 模仿淘宝预览图片
    自动安装silverlight,类似flash自动安装
    来说说mask吧
    笔试题n! 末尾0的个数
    VueCLI和脚手架(原创)
    REST构架风格介绍之一:状态表述转移(ZZ)
    VSS2005的配置(转载)
    ArcGIS9.2安装与.NET简单使用(zz 简单且有用)
    ASP.NET内置对象(7个)
  • 原文地址:https://www.cnblogs.com/tengyuxin/p/15222393.html
Copyright © 2011-2022 走看看