pulltorefresh.js滚动未到顶部就触发刷新问题如何解决
根因说明
pulltorefresh.js 初始化默认没有附加滚动位置判断逻辑,只要检测到向下的拖拽手势就会触发刷新流程,所以页面不在顶部时的上滑操作也可能被误识别为下拉动作。
修复方案
在初始化配置中新增shouldPullToRefresh钩子函数,仅当页面滚动到顶部时才允许触发下拉刷新逻辑,修改后的代码如下:
/* global PullToRefresh */ PullToRefresh.init({ mainElement: '#mainapp', // 自定义触发条件:仅滚动到顶部时允许下拉刷新 shouldPullToRefresh: function() { const mainContainer = document.querySelector('#mainapp'); // 若页面滚动容器为全局window,将上方代码替换为 return window.pageYOffset === 0 return mainContainer.scrollTop === 0; }, onRefresh: function() { alert('refresh'); location.reload(); } });
shouldPullToRefresh是官方内置的前置判断钩子,返回true时才会进入下拉刷新的触发流程,完美匹配仅滚动到顶部触发刷新的需求。
内容的提问来源于stack exchange,提问作者user17283963
相关产品推荐
相关产品推荐

