js 判断浏览器滚动触底 操作,并触发加载框

本文介绍如何使用jQuery简化移动端滚动事件检测,当用户滚动到底部时,实现加载更多效果并包含一个自定义的加载动画。

这个其实在移动端浏览器用的还是比较多的  

我这边引入了一个jquery 来少写一些代码 偷个懒

其实触底 就是判断用户滚动的距离  加上屏幕的 高度  等于  文档document的总高度的话 那就是到底部了 

html代码

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        .container {
            height: 2000px;
            width: 100%;
            border: 1px solid #f00;
        }
        .load {
            height: 3rem;
            width: 3rem;
            border-radius: 50%;
            position: fixed;
            left: 50%;
            top: 50%;
            margin-top: -1rem;
            margin-left: -1rem;
            border-top: .2rem solid #666;
            border-bottom: .2rem solid #eee;
            border-left: .2rem solid #eee;
            border-right: .2rem solid #eee;
            animation: load 1s linear infinite;
        }
        @keyframes load {
            from {
                transform: rotate(0deg);
            }

            to {
                transform: rotate(360deg);
            }
        }
    </style>

 我还手动创建了一个加载框  哈哈  


<div class="container">

</div>
    <script>
        var flag = false;
        $(window).on('scroll', function() {
            var scrollTop = $(window).scrollTop(); //滚动的高度
            var height = $(window).height(); // 屏幕的高度
            var docHeight = $(document).height();

            if((scrollTop + height) == docHeight) {
                console.log('触底了');
                if(!flag) {
                    flag = true;
                    var div = document.createElement('div');
                    div.className = "load";
                    document.body.appendChild(div);
                    setTimeout(() => {
                        flag = false;
                        div.parentNode.removeChild(div);
                    }, 3000)
                }
                
                
                
            }
        })
    </script>

关注我 持续更新前端知识   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunchong_zhao

帮到你了,请作者喝杯矿泉水可好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值