MUI下拉刷新与区域滚动冲突的解决办法,实际解决

今天遇到了MUI下拉刷新的大坑,百度了好久也没看到有能用的解决办法。

自己查阅HTML 5+ API文档后,觉得可以监听scroll事件,当到达顶部时开启下拉刷新,非顶部时关闭即可。一尝试果然可行。

废话不说了,解决办法如下:

//日志标记flag
var flag = true;
//进入时开启刷新
var selfpage = plus.webview.currentWebview();
selfpage.setPullToRefresh({
    support: true
}, onRefresh);
//监听滚动事件
document.querySelector('.scroll-body').addEventListener('scroll', function(e) {
    //当scrollTop等于0时即是到达顶部
    if(this.scrollTop == 0) {
        flag = true;
        console.log("refresh:" + flag);    
        //开启刷新,参考//http://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewPullToRefreshStyles
        plus.webview.currentWebview().setPullToRefresh({
                support: true,
                style: 'circle',
                height: '40px',
                range: '40px',
                offset: '61px',
        });
    }else if(flag) {
        flag = false;
        console.log("refresh:" + flag);
        selfpage.setPullToRefresh({
        support: false
    });
 });
 //具体执行刷新的方法
function onRefresh(){
    console.log("onRefresh");
    plus.webview.currentWebview().endPullToRefresh();
 }

 

展开阅读全文

没有更多推荐了,返回首页