PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > Jquery教程 > 正文

    jQuery检测div中滚动条是否到达底部

    作者:w634381967来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:之前写过一篇文章(jQuery检测浏览器window滚动条到达底部),其实还并不理解scrollTop和scrollHeight概念,通常滚动条都是放在div中的。如...
    之前写过一篇文章(jQuery检测浏览器window滚动条到达底部),其实还并不理解scrollTop和scrollHeight概念,通常滚动条都是放在div中的。

    如下检测id为scroll_div滚动条到达底部事件:

    <div id="scroll_div" style="overflow-y:auto; overflow-x:hidden;margin:100px;height:500px;border:1px solid red">
                <div style="height:10000px">
                    来自于www.bcty365.com教程<br>
                    来自于www.
    bcty365.com教程<br>
                    来自于www.
    bcty365.com教程<br>
                </div>
            </div>

    首先需要理解几个概念:
    scrollHeight:表示滚动条需要滚动的高度,即内部div,10000px
    scrollTop: 表示滚动条滚动的高度,可能大于外部div 500px
    也就是说scrollDiv的高度+scrollTop滚动的最大高度=scrollHeight
    于是检测div中div滚动条高度就简单了:
    $(document).ready(function() {
        $("#scroll_div").scroll(function(){
            var divHeight = $(this).height();
            var nScrollHeight = $(this)[0].scrollHeight;
            var nScrollTop = $(this)[0].scrollTop;
            $("#input1").val(nScrollHeight);
            $("#input2").val(nScrollTop);
            $("#input3").val(divHeight);
            if(nScrollTop + divHeight >= nScrollHeight) {
                alert("到达底部了");
            }
        });
    });

    如果是异步加载数据,数据没加载完,又触犯了同一页的数据加载请求,我通常是加一个flag
    $(document).ready(function() {
        var flag = false;
        $("#scroll_div").scroll(function(){
           
            if(flag){
                //数据加载中
                return false;
            }
           
            var divHeight = $(this).height();
            var nScrollHeight = $(this)[0].scrollHeight;
            var nScrollTop = $(this)[0].scrollTop;
            $("#input1").val(nScrollHeight);
            $("#input2").val(nScrollTop);
            $("#input3").val(divHeight);
            if(nScrollTop + divHeight >= nScrollHeight) {
                //请求数据
                flag = true;
                alert("到达底部了");
            }
        });
    });
    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-47-1106-1.html
    相关热词搜索: