美文网首页
页面无限滚动实现原理

页面无限滚动实现原理

作者: 健健康康 | 来源:发表于2020-01-06 19:38 被阅读0次

前端无限滚动一般指元素滚动到最后,动态加载更多数据。实现原理大只如下:
假设outer为外层容器, 则当滚动条滚动到最低端时

outer.scrollHeight  = outer.scrollTop + outer.offsetHeight;  

我们希望滚动到快到底部时触发加载,可以为outer添加滚动监听,当差值小于10像素时加载新数据, 其中注意滚动到小于10像素后会连续多次触发滚动事件,所以注意事件的节流处理(一个函数未执行完不再执行第二次),以下是一个简单示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        #box{
            width: 300px;
            height: 300px;
            overflow: auto;
        }
        #item{
            height: 400px;
            background-color: aquamarine;
        }
    </style>
</head>
<body>
    <div id="box">
        <div id="item"></div>
    </div>
</body>
<script type="text/javascript">
    document.getElementById('box').addEventListener('scroll', function() {
        if (!this.delay) {
            this.delay = true;
            const st = setTimeout(() => {
                this.scrollTop + this.offsetHeight -10 > this.scrollHeight;
                const item = document.createElement('div');
                item.id = 'item';
                this.appendChild(item);
                this.delay = false;
                clearTimeout(st);
            }, 1000);
        }
    }, false);
</script>
</html>

相关文章

  • 页面无限滚动实现原理

    前端无限滚动一般指元素滚动到最后,动态加载更多数据。实现原理大只如下:假设outer为外层容器, 则当滚动条滚动到...

  • 微信小程序实现一键返回顶部

    1.实现效果 2.实现原理 onPageScroll事件,监听页面滚动事件,当页面滚动超过一定高度,显示出一键返回...

  • JS - 单页面无限加载页面

    DEMO功能: 实现听过滚动无限刷新增添新元素 监听 scroll 事件 通过监听 scroll 事件,在页面滚动...

  • pc端 jQuery实现 导航悬浮

    场景: 页面滚动距离超过banner的高度就header就悬浮 html javascript css 实现原理:...

  • 微信小程序scroll-view实现滚动卡片

    1.实现效果 2.实现原理 scroll-view,设置scroll-y,竖向滚动,高度为整个页面的80%; 为卡...

  • JS开发之上拉加载更多

    需求说明:当用户浏览到页面底部时候,自动加载下一页的内容实现原理:JS获取当前滚动条高度、滚动条长度以及页面总长度...

  • carousel

    轮播的实现原理是怎样的?如果让你来实现,你会抽象出哪些函数(or接口)供使用?(比如 play()) 左右滚动无限...

  • 页面滚动和页面无缝滚动

    页面滚动实现思路 页面无缝滚动实现思路 两者关联 页面滚动实现思路 (1)首先要做一个容器当做父元素,用来放你要滚...

  • 无限循环滚动控件的思路

    无限滚动场景还是很常见的,例如无限banner滚动,还有我要实现的无限向上滚动的需求: 可以确定,这种滚动效果,需...

  • 无限滚动与分页设计

    无限滚动技术:简单地向下滚动就可以不断刷新页面,加载更多的内容。分页:将内容分为单独页面,滚动到页面底部看到数字行...

网友评论

      本文标题:页面无限滚动实现原理

      本文链接:https://www.haomeiwen.com/subject/ttzkactx.html