逐日 30 秒 ⏱ 推断是不是为页面底部

《逐日 30 秒 ⏱ 推断是不是为页面底部》

简介

分页、优化、可视地区、无穷加载

写前端页面时最常常碰到的开辟需求之一就是 衬着后端数据返回的数据对象,当数据对象数目极多的时刻便须要举行分页。

罕见的分页体式格局有三种:

  1. 在页面底部天生 上一页下一页页面列表 按钮。

    • 用户能够很直接的挑选本身须要阅读的页面。
    • 不须要忧郁页面数据过量形成的卡顿。
    • 比起 自动加载更多数据 略显不智能。
  2. 在页面底部天生 加载更多数据 按钮。

    • 相对于页面底部天生分页相干按钮体验好一点
    • 用户能够控制本身是不是须要加载更多数据。
    • 比起 自动加载更多数据 略显不智能。
    • 须要注重页面数据过量形成的卡顿。
  3. 当用户转动到页面底部时 自动加载更多数据

    • 更相符用户直觉体验很好。
    • 须要注重页面数据过量形成的卡顿。
    • 假如页脚有其他数据用户须要翻遍数据才看到页脚。

固然分页没有相对的银弹得依据差别的状况举行稍微的调解和交织搭配运用分页体式格局。比方:页面页脚有须要用户检察的数据时,能够运用 自动加载更多数据,当加载二到三页时提醒 加载更多数据 按钮,使得特定用户能够较为轻易的看到页脚内容更多的情形就不一一列举了。

页面数据过量形成的卡顿能够参考 逐日 30 秒之 chunk 中给出的情形案例,应用 数据分组显现 来削减 DOM 节点进而优化页面卡顿,这里不议论分页及其相干的优化。

本日分享的代码是分页历程中会用到的一个函数 推断是不是抵达了页面底部

// 该源码来自于 https://30secondsofcode.org
const bottomVisible = () =>
  document.documentElement.clientHeight + window.scrollY >=
  (document.documentElement.scrollHeight || document.documentElement.clientHeight);

代码剖析

窗口可见地区的高度窗口已转动的间隔高度 获得当前页面所处的位置:

document.documentElement.clientHeight + window.scrollY

再与 全部页面的高度 作比较来推断是不是已抵达了页面底部,假如 全部页面的高度 不存在则运用 窗口可见地区的高度 做替代:

... >= (document.documentElement.scrollHeight || document.documentElement.clientHeight)

小技能:应用
|| 技能来初始化数据

运用场景

做一个无穷加载数据项的分页功用,当页面抵达底部时举行数据加载。


// 监听页面转动
document.addEventListener('scroll', () => {
    // 假如抵达页面底部
    if(bottomVisible()) {
        // 1.发送收集要求猎取数据
        // 2.插进去数据到页面
    }
});

类似代码

推断是不是抵达了页面顶部

const topVisible = () => window.scrollY == 0

一同生长

在疑心的城市里总少不了并肩偕行的
同伴 让我们一同生长。

  • 假如您想让更多人看到文章能够点个 点赞
  • 假如您想鼓励小二能够到 Github 给个 小星星
  • 假如您想与小二更多交换增加微信 m353839115

《逐日 30 秒 ⏱ 推断是不是为页面底部》

本文原稿来自
PushMeTop

    原文作者:zhangxiangliang
    原文地址: https://segmentfault.com/a/1190000018482003
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞