• 元素滚到到底部原理


    元素滚动到底部原理

    element.scrollHeight - element.scrollTop === element.clientHeight

    另外一种判断方法(元素占据整屏适用)

    element.getBoundingClientRect().bottom - element.clientHeight < threshold

    1、判断滚动条滚动到最底端: scrollTop == (scrollHeight – clientHeight)
    2、在滚动条距离底端50px以内: (scrollHeight – clientHeight) – scrollTop <= 50
    3、在滚动条距离底端5%以内: scrollTop / (scrollHeight – clientHeight) >= 0.95

    事件处理如下:

    var clientHeight = ele.clientHeight; // 元素窗口的高度(不会变)  
    $(ele).scroll(function(event){  
        var scrollTop = ele.scrollTop; // 当前滚动条位置    
        var scrollHeight = ele.scrollHeight; // 滚动条总高度     
        if (scrollTop + clientHeight >= scrollHeight) {            
            showMore();  
        }    
    });  

    几种高度的区别:

    clientHeight = height+padding-横向滚动轴高度,就是可视区域高度
    offsetHeight = padding+height+border+横向滚动轴高度,可视区域加上滚动轴的高度
    scrollHeight = 元素的滚动区域高度,大于等于offsetHeight

    window的高度获取方法如下

    var doc = document.documentElement || document.body;
    var scrollTop = doc.scrollTop;
    var scrollHeight = doc.scrollHeight;
    var clientHeight = doc.clientHeight;

    屏幕的高度还可以使用

    window.getBoundingClientRect().height || window.innerHeight

    参考: https://blog.csdn.net/wangjun5159/article/details/54916404

  • 相关阅读:
    ROS安装
    安装octomap的问题与解决方案
    陀螺仪和加速度计MPU6050的单位换算方法
    概率基础
    Ubuntu使用多线程cmake时出现undefined reference to `pthread_create'
    C++中的static关键字的总结
    QSignalMapper的使用和使用场景
    Linux下C ,C ++, Qt开发环境
    void operator()()的功能
    C++11多线程编程--线程创建
  • 原文地址:https://www.cnblogs.com/mengff/p/9015015.html
Copyright © 2020-2023  润新知