H5移动端,下拉刷新PullToRefresh

本文介绍了在使用PullToRefresh.js库实现自定义下拉刷新功能时遇到的问题及解决方案。当刷新元素为null导致报错,原因是init函数调用过早,DOM节点未生成。通过监听页面渲染完成,利用Vue的nextTick确保在DOM更新后初始化插件,成功解决了问题。

用的库-PullToRefresh

GitHub - BoxFactura/pulltorefresh.js: A quick and powerful plugin for your pull-to-refresh needs in your webapp.

前言:下拉刷新分为两种,1.以body为刷新元素 2.自定义刷新元素

本次需求为2

问题点:刷新元素为null,报错

 

附代码

onMounted(() => {
    PullToRefresh.init({
        mainElement: '#main',
        triggerElement: '#main',
        onRefresh: function (cb) {
           setTimeout(function () {
             cb();
           }, 1500);
         },
         shouldPullToRefresh: function(){
            return !this.mainElement.scrollTop;
         }
    });
})

原因:init函数初始化早了,页面可能没生成DOM节点,因此init函数应该在页面生成DOM之后调用

//allReady为页面渲染条件
watch(allReady, value => {
  nextTick(() => {
    if (value) {
      PullToRefresh.init({
        mainElement: '#main',
        triggerElement: '#main',
        onRefresh: function (cb) {
          setTimeout(function () {
            cb();
          }, 1500);
        },
        shouldPullToRefresh: function(){
          return !this.mainElement.scrollTop;
        }
      });
    }
  })
})

 ok,大功告成~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值