使用监听 scroll 可以实现监听页面滚动或者元素滚动是否到底

案例代码
<template> <div class="app-container"> <div class="box"> <div v-for="
(item,index) in count" :key="index" class="item"> {{ item }} </div> </div> </div
> </template> <script> export default { name: "test", data() { return { count:
20 } }, mounted() { this.handlerNodeScroll() }, methods: { // 监听元素滚动
handlerNodeScroll() { let that = this // 函数防抖 let fun = that.debounce(e => { //
距顶部 let scrollTop = e.target.scrollTop; // 可视区高度 let clientHeight = e.target.
clientHeight; // 滚动条总高度 let scrollHeight = e.target.scrollHeight; //
如果当前距离顶部的值加上可视区域的值大于等于总高度,则任务滚动条触底 if (Math.ceil(scrollTop + clientHeight) >=
scrollHeight) { //容差:20px console.log('滚动到底部'); if (that.count >= 50) return
that.count += 10 } }, 500) // 监听滚动 let box = document.querySelector(".box"); box
.addEventListener("scroll", function (e) { fun(e) }) }, // 函数防抖 debounce(handle,
delay) { let timer = null; return function () { let _self = this, _args =
arguments; clearTimeout(timer); timer = setTimeout(function () { handle.apply(
_self, _args) }, delay) } } } } </script> <style scoped lang="scss"> .box {
width: 200px; height: 400px; border: 1px solid #7c7c7c; padding: 15px;
box-sizing: border-box; overflow: auto; .item { margin-bottom: 10px; height:
40px; line-height: 40px; text-align: center; background-color: #1482f0;
font-size: 18px; font-weight: 700; color: white; } } </style>
运行效果

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信