• 判断滚动条滚动到document底部


    滚动条没有实际的高度。只是为了呈现效果才在外型上面有长度。
    在js当中也没有提供滚动条的高度API。
    参考了网上有关资料:判断滚动条到底部的基本逻辑是滚动条滚动的高度加上视口的高度,正好是document的高度,公式表示为
    滚动条滚动的高度+浏览器视口的高度>=document的高度。
    参考网上资料,具体代码如下:
    //滚动条在Y轴上的滚动距离
        function getScrollTop() {  
            var scrollTop = 0,
                bodyScrollTop = 0,
                documentScrollTop = 0;
            //兼容谷歌
              
            if (document.body) {     bodyScrollTop = document.body.scrollTop;   }
            //兼容火狐
              
            if (document.documentElement) {     documentScrollTop = document.documentElement.scrollTop;   }
    
               scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop;  
            return scrollTop;
        }
        //文档的总高度
        function getScrollHeight() {  
            var scrollHeight = 0,
                bodyScrollHeight = 0,
                documentScrollHeight = 0;
            //兼容谷歌
            if (document.body) {
                bodyScrollHeight = document.body.scrollHeight;   
            }
            //兼容火狐 
            if (document.documentElement) {
                documentScrollHeight = document.documentElement.scrollHeight;   
            }
            scrollHeight = (bodyScrollHeight - documentScrollHeight > 0) ? bodyScrollHeight : documentScrollHeight;  
            return scrollHeight;
        }
        //浏览器视口的高度
        function getWindowHeight() {  
            var windowHeight = 0;
            windowHeight = document.documentElement.clientHeight; 
            return windowHeight;
        }
        window.onscroll = function() {  
            if (getScrollTop() + getWindowHeight() == getScrollHeight()) {     
            	alert("you are in the bottom!");   
            }
        };
     
    jquery实现代码:
    $(window).scroll(function(){
      var scrollTop = $(this).scrollTop();
      var scrollHeight = $(document).height();
      var windowHeight = $(this).height();
      if(scrollTop + windowHeight == scrollHeight){
        alert("you are in the bottom");
      }
    });
    

     

    代码测试有效果。
     
  • 相关阅读:
    MySQL设计之三范式的理解
    git基本操作命令和安装
    MySQL 中<=>用法(长知识)
    举个栗子看如何做MySQL 内核深度优化
    我们来说一说TCP神奇的40ms
    一览js模块化:从CommonJS到ES6
    Vtiger CRM 几处SQL注入漏洞分析,测试工程师可借鉴
    做优化的数据库工程师请参考!CynosDB的计算层设计优化揭秘
    1个开发如何撑起一个过亿用户的小程序
    教你一个vue小技巧,一般人我不说的
  • 原文地址:https://www.cnblogs.com/zhensg123/p/7435890.html
Copyright © 2020-2023  润新知