最近公司用nextjs做移动端页面嵌入客户端。一个列表页面,用到了mui的上拉加载,但是不需要下拉刷新(因为在端内一直往下拉,出现长长的空白。按住不松手,然后点击开空白,之后松手,就不能回弹上去了,心塞),我没有配置down,也能有下拉动作片。然后各种文档查看禁止下拉刷新,禁用后就没了上拉加载,然后时间急迫。没研究(对mui不熟悉) 。就用原生的来了一套,解决了这个问题。首先在ajax请求完成之后调用函数执行就行了。、代码贴上。
<div
style={{ height: prizeList.length > 0 ? '' : '100%' }}
className="mui-scroll xjc-scroll"
id="xjc-scroll"
>....
addlistener = (): void => {
const warpList = document.querySelector('#xjc-scroll');
warpList && warpList.addEventListener('scroll', () => {
const arr = window.getComputedStyle(warpList, null).transform.replace(/matrix|\(|\)/g, '').split(',');
if (arr.length > 0) {
const value = Number(arr[arr.length - 1]);
if (value >= 0) {
warpList.style = 'transform: translate3d(0px, 0px, 0px) translateZ(0px)';
}
}
});
}
后来发现自己很垃圾,其实用css属性pointer-events: none;就可以禁用掉所有事件,,给滑动的div加上即可
成功搞定。OK,舒服的睡一觉。如果哪位大佬有官方api。有效的实现,请贴下代码。学习下。谢谢。