zoukankan      html  css  js  c++  java
  • 判断滚动条到底部的JS代码

    这篇文章介绍了判断滚动条到底部的JS代码,有需要的朋友可以参考一下

    判断滚动条到底部,需要用到DOM的三个属性值,即scrollTop、clientHeight、scrollHeight。

    scrollTop为滚动条在Y轴上的滚动距离。

    clientHeight为内容可视区域的高度。

    scrollHeight为内容可视区域的高度加上溢出(滚动)的距离。

    从这个三个属性的介绍就可以看出来,滚动条到底部的条件即为scrollTop + clientHeight == scrollHeight。

    废话不多少说,赶紧上代码(兼容不同的浏览器)。


     

    复制代码代码如下:

    //滚动条在Y轴上的滚动距离

    function getScrollTop(){
    var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0;
    if(document.body){
    bodyScrollTop = document.body.scrollTop;
    }
    if(document.documentElement){ // www.jbxue.com
    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;
    if(document.compatMode == "CSS1Compat"){
    windowHeight = document.documentElement.clientHeight;
    }else{
    windowHeight = document.body.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"); // www.jbxue.com
    }
    });

    如果要判断在某一个元素中的滚动条是否到底部,根据类似的思想,将document.body换成特定的元素即可,获取scrollTop和scrollHeight的方式是一样的,但是获取元素可见高度需要用到offsetHeight属性,直接依葫芦画瓢即可。
  • 相关阅读:
    在Linux下OpenCV的下载和编译
    安装GDB-ImageWatch ,在QT中查看图像
    linux下对qt编写的程序进行部署
    GOQTTemplate简单介绍
    寻找激光的交叉点
    基于opencv和QT的摄像头采集代码( GoQTtemplate3持续更新)
    图像处理工程师的要求研究
    如何将QT的pro图标修改的更显著一些
    快速阅读《QT5.9 c++开发指南》2
    小米盒子连接老式电脑显示器(VGA接口)
  • 原文地址:https://www.cnblogs.com/linuxnotes/p/3407828.html
Copyright © 2011-2022 走看看