解决使用 UniApp 搭配 Vue3 小程序开始 使用uview-plus 的返回顶部up-back-top中onPageScroll 不触发的问题

解决使用 UniApp 搭配 Vue3 小程序开始 使用uview-plus 的返回顶部up-back-top中onPageScroll 不触发的问题

页面引入方法都正确 结果方法不触发

javascript 复制代码
<up-back-top :scroll-top="scrollTop"></up-back-top>
<script setup>  
import { ref } from 'vue';  
import { onPageScroll } from '@dcloudio/uni-app';
  
// 创建响应式数据 scrollTop  
const scrollTop = ref(0);  
  
// onPageScroll 方法来更新 scrollTop 的值  
onPageScroll((e) => {
	scrollTop.value = e.scrollTop;
});
</script>

排查问题后发现 需要注意以下几个问题 否则不会触发箭监听滚动 onPageScroll 方法

第一:最外层盒子容器的 css中 需要设置高度 但是不能设置:overflow: hidden 或者overflow-y: auto或overflow-y: scroll

第二:使用了自定义导航栏 需要设置 navigationStyle: custom

第三:在 pages.json 的页面配置中,需要确保未禁用滚动监听 "disableScroll": false

javascript 复制代码
// pages.json
{
    "pages": [{
        "path": "pages/index/index",
        "style": {
            "navigationBarTitleText": "首页",
            "disableScroll": false // 确保为 false
        }
    }]
}

完成以上 即可实现返回顶部组件生效

========================================================

如果不想使用组件 自定义方法

javascript 复制代码
<view class="upward" v-if="isShow" @click="Totop()">
   <u-icon name="arrow-upward" color="#434343" size="28"></u-icon>
</view>
<script setup>  
import { ref } from 'vue';  
import { onPageScroll } from '@dcloudio/uni-app';
// 创建响应式数据 scrollTop  
//const scrollTop = ref(0);  
let isShow = ref(false)
// onPageScroll 方法来更新 scrollTop 的值 这个方法需要注意上面三点问题 是否不一致
onPageScroll((e) => {
	//scrollTop.value = e.scrollTop;
	if(e.scrollTop > 400){
		isShow.value = true
	}else{
		isShow.value = false
	}
});
function Totop(){
	uni.pageScrollTo({
       scrollTop: 0,//滚动到页面的目标位置
       duration: 300
   	});
}
</script>
相关推荐
2501_915909062 小时前
Ipa Guard 防护上架,混淆、重签名和回归测试怎么做
android·ios·小程序·https·uni-app·iphone·webview
济南壹软网络科技有限公司7 小时前
盲盒源码系统小程序V6MAX底层架构解析,PHP+Uniapp高性能商用底座发布
小程序·架构·uni-app
2501_915918417 小时前
iOS 上架注意事项有哪些?Appuploader 的四个阶段自查清单
android·ios·小程序·https·uni-app·iphone·webview
Autumn_ing8 小时前
AI原型设计工具怎么选?可编辑原型与可运行前端适合什么场景
前端·小程序·产品经理·代码·codex·墨刀ai客户端·ai原型
fengGer的bugs8 小时前
微信小程序实战:本地存储的新生儿喂养记录(原生 + 四套主题 + 疫苗日程)
微信小程序·小程序
Ai-_Man9 小时前
我需要批量导出Poe左边栏所有对话,而不是一条具体的对话内容,你们AI导出鸭可以吗?
开发语言·前端·javascript·人工智能·小程序
青企通9 小时前
二手交易小程序的担保交易:资金托管、状态机与争议处理
小程序
andrsted1 天前
练题簿免费刷题小程序:和学习搭子共用一份题库,一起刷题复习
学习·面试·微信小程序·小程序·学习方法·刷题
万岳科技程序员小金1 天前
教育机构如何搭建在线教学平台?网校系统、小程序与APP开发指南
小程序·在线教育系统源码·教育平台搭建·教育app开发·教育软件开发·教育小程序开发
PedroQue991 天前
uni-app x工程化实战:从页面堆到可维护架构
前端·uni-app