将页面滚动到底部

方法很简单:

  1. 在HTML的底部增加一个锚点
<div id="end"></div>

2.在JS中直接使用原生动方法scrollIntoView:

document.getElementById("end").scrollIntoView();
### 在UniApp中实现监听页面滚动底部的功能 在 UniApp 中,可以通过多种方式监听页面滚动底部的事件。以下详细介绍两种常见的实现方法:使用 `onPageScroll` 和 `onReachBottom`。 #### 方法一:使用 `onPageScroll` 监听滚动事件 `onPageScroll` 是 UniApp 提供的一个生命周期函数,用于监听页面滚动事件。当页面发生滚动时,该函数会被触发,并传递一个包含 `scrollTop` 属性的对象,表示页面垂直方向滚动的距离[^1]。通过计算页面高度、可视区域高度以及滚动距离,可以判断是否滚动底部。 以下是具体代码实现: ```javascript export default { data() { return { scrollTop: 0, // 滚动条距离顶部的距离 windowHeight: 0, // 可视区域高度 documentHeight: 0, // 页面总高度 }; }, onLoad() { // 获取窗口信息 uni.getSystemInfo({ success: (res) => { this.windowHeight = res.windowHeight; // 获取可视区域高度 }, }); }, onPageScroll(e) { this.scrollTop = e.scrollTop; // 更新滚动距离 if ( this.scrollTop + this.windowHeight >= this.documentHeight - 10 ) { console.log("滚动底部了"); this.loadMoreData(); // 调用加载更多数据的方法 } }, methods: { loadMoreData() { // 加载更多数据的逻辑 console.log("加载更多数据..."); }, updateDocumentHeight() { // 动态更新页面总高度 uni.createSelectorQuery() .select(".page-container") // 替换为你的页面容器类名 .boundingClientRect((rect) => { this.documentHeight = rect.height; }) .exec(); }, }, }; ``` 在上述代码中,`onPageScroll` 函数会实时监测滚动距离,并通过比较滚动距离与页面总高度的关系来判断是否滚动底部[^1]。 --- #### 方法二:使用 `onReachBottom` 自动触发底部加载 `onReachBottom` 是 UniApp 提供的一个生命周期函数,当页面滚动底部时自动触发。开发者无需手动计算滚动距离,只需在该函数中编写加载更多数据的逻辑即可[^3]。 以下是具体代码实现: ```javascript export default { data() { return { FormData: { page: 1, pageSize: 10, }, totalPage: 5, // 总页数 dataList: [], // 数据列表 }; }, onReachBottom() { if (this.FormData.page < this.totalPage) { this.FormData.page++; this.loadMoreData(); // 调用加载更多数据的方法 } else { uni.showToast({ title: "后一页了", icon: "none", }); } }, methods: { loadMoreData() { // 模拟加载更多数据 setTimeout(() => { const newData = Array.from({ length: this.FormData.pageSize }, (_, i) => ({ id: this.dataList.length + i + 1, name: `Item ${this.dataList.length + i + 1}`, })); this.dataList = [...this.dataList, ...newData]; }, 500); }, }, }; ``` 在上述代码中,`onReachBottom` 函数会在页面滚动底部时自动触发,并根据当前页码和总页数决定是否加载更多数据[^3]。 --- #### 注意事项 1. 如果页面内容是动态生成的,建议在数据渲染完成后调用 `this.$nextTick` 或 `uni.createSelectorQuery` 来更新页面高度[^2]。 2. 在使用 `onPageScroll` 时,需注意性能优化,避免频繁触发导致性能问题。可以通过节流(throttle)或防抖(debounce)技术来优化。 --- ### 示例代码总结 通过 `onPageScroll` 和 `onReachBottom`,可以分别实现手动判断滚动底部和自动触发底部加载的功能。开发者可根据实际需求选择合适的方式。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值