当前位置:网站首页>浏览器滚动加载更多实现
浏览器滚动加载更多实现
2022-07-02 06:22:00 【秦时明月之安康】
一、代码实现
下面的代码是基于我常用的UI框架vue实现的,如果你是其他框架,直接提取滚动的关键代码即可,注意 crollPoint
加了0.5是为了兼容企业微信内置浏览器,当企业微信内置浏览器首次滚动到底部的时候,变量 crollPoint
和 totalPageHeight
值如下:
TYPE | ASCII |
---|---|
scrollPoint | 1600.6666870117188 |
Quotes | 1601 |
可以看到如果不加 0.5
, scrollPoint >= totalPageHeight 是不成立的,也就无法滚动加载了。
<template>
<div></div>
</template>
<script>
export default {
data() {
return {
data: [],
oriData: [],
page: {
total: 0,
pageSize: 10, // 滚动一次加载10条数据
current: 1,
},
};
},
mounted() {
document.addEventListener('scroll', this.scrollMoreData, false);
},
destroyed() {
document.removeEventListener('scroll', this.scrollMoreData, false);
},
methods: {
scrollMoreData() {
const {
total, current, pageSize } = this.page;
// @var int totalPageHeight
const totalPageHeight = document.body.scrollHeight;
// @var int scrollPoint
const scrollPoint = window.scrollY + window.innerHeight;
// check if we hit the bottom of the page
console.log('scrollPoint >= totalPageHeight', scrollPoint, totalPageHeight);
if (scrollPoint + 0.5 >= totalPageHeight && current * pageSize <= total) {
console.log('at the bottom');
this.data = this.data.concat(this.oriData.slice(current * pageSize, pageSize * (current + 1)));
this.page.current += 1;
}
},
},
};
</script>
<style lang="less" scoped></style>
二、参考文档
Javascript: How to detect if browser window is scrolled to bottom?
边栏推荐
- CUDA与Direct3D 一致性
- Redis - grande question clé
- AWD学习
- ModuleNotFoundError: No module named ‘jieba.analyse‘; ‘jieba‘ is not a package
- automation - Jenkins pipline 执行 nodejs 命令时,提示 node: command not found
- 华为MindSpore开源实习机试题
- Sparse array (nonlinear structure)
- Warp shuffle in CUDA
- 代码技巧——Controller参数注解@RequestParam
- Win电脑截图黑屏解决办法
猜你喜欢
ShardingSphere-JDBC篇
FE - 微信小程序 - 蓝牙 BLE 开发调研与使用
pytest(1) 用例收集规则
PgSQL学习笔记
ctf三计
Sentinel 阿里开源流量防护组件
Sentinel Alibaba open source traffic protection component
Log (common log framework)
一口气说出 6 种实现延时消息的方案
QQ email cannot receive the email sent by Jenkins using email extension after construction (timestamp or auth...)
随机推荐
20210306转载如何使TextEdit有背景图片
自学table au
10 erreurs classiques de MySQL
TensorRT的命令行程序
20201002 VS 2019 QT5.14 开发的程序打包
Selenium+msedgedriver+edge browser installation driver pit
分布式事务 :可靠消息最终一致性方案
web自动中利用win32上传附件
代码技巧——Controller参数注解@RequestParam
压力测试修改解决方案
Redis---1.数据结构特点与操作
CUDA中的Warp Shuffle
Summary of WLAN related knowledge points
最新CUDA环境配置(Win10 + CUDA 11.6 + VS2019)
Name six schemes to realize delayed messages at one go
Flask-Migrate 检测不到db.string() 等长度变化
Sudo right raising
由于不正常断电导致的unexpected inconsistency;RUN fsck MANUALLY问题已解决
Idea announced a new default UI, which is too refreshing (including the application link)
Warp matrix functions in CUDA