DevsDawn
DevsDawn

framework7框架中tab页面下拉刷新方案

最近在使用framework7框架开发web app,发现在tab页面中直接定义多个ptr-content会导致异常。最后绑定用户点击tab的事件,动态解绑/绑定ptr后解决。

在HTML中这样定义ptr,只需在tab-1(首屏)中设置ptr-content即可,用户切换tab时再去把ptr-content class赋值到对应的tab中。

<div class="tabs">
  <div id="tab-1" class="page-content tab tab-active ptr-content">
    <div class="ptr-preloader">
        <div class="preloader"></div>
        <div class="ptr-arrow"></div>
    </div>
    ......
  </div>
  <div id="tab-2" class="page-content tab">
    <div class="ptr-preloader">
        <div class="preloader"></div>
        <div class="ptr-arrow"></div>
    </div>
    ......
  </div>
  <div id="tab-3" class="page-content tab">
    <div class="ptr-preloader">
        <div class="preloader"></div>
        <div class="ptr-arrow"></div>
    </div>
    ......
  </div>
  ....
</div>

JS代码这样设置,注意我这里由于兼容性原因没有把Dom7定义为$$,如果你定义了Dom7为$$,直接把Dom7改为$$即可。

另外特别注意的是当用户切换tab后,必须先调用一次ptr.done()来让当前的refreshing停止,否则在refreshing时切换会出现奇怪的问题。

Dom7('#tab-1').on('ptr:refresh', function (e) {
    //Do something
    app.ptr.done();
});
Dom7('#tab-2').on('ptr:refresh', function (e) {
    //Do something
    app.ptr.done();
});
Dom7('#tab-3').on('ptr:refresh', function (e) {
    //Do something
    app.ptr.done();
});
Dom7('a[href="#tab-1"]').on('click', function (e) {
    app.ptr.done();
    app.ptr.destroy('.ptr-content');
    Dom7('.ptr-content').removeClass("ptr-content");
    Dom7('#tab-1').addClass("ptr-content");
    app.ptr.create('#tab-1');
});
Dom7('a[href="#tab-2"]').on('click', function (e) {
    app.ptr.done();
    app.ptr.destroy('.ptr-content');
    Dom7('.ptr-content').removeClass("ptr-content");
    Dom7('#tab-2').addClass("ptr-content");
    app.ptr.create('#tab-2');
});
Dom7('a[href="#tab-3"]').on('click', function (e) {
    app.ptr.done();
    app.ptr.destroy('.ptr-content');
    Dom7('.ptr-content').removeClass("ptr-content");
    Dom7('#tab-3').addClass("ptr-content");
    app.ptr.create('#tab-3');
});

注意我这里没有考虑使用API切换tab的情况,如果使用API,还需要修改一下绑定的代码。

若无特别说明,本文采用 CC BY-SA 4.0 协议进行许可。如需转载,请附上本文链接和本声明。
本文链接:https://devsdawn.com/2018/05/framework7%e6%a1%86%e6%9e%b6%e4%b8%adtab%e9%a1%b5%e9%9d%a2%e4%b8%8b%e6%8b%89%e5%88%b7%e6%96%b0%e6%96%b9%e6%a1%88/
DigitalOcean云服务,美国上市公司,注册即送200USD体验金
Vultr云服务,全球25+地域,注册即送100USD体验金

发表回复

textsms
account_circle
email

DevsDawn

framework7框架中tab页面下拉刷新方案
最近在使用framework7框架开发web app,发现在tab页面中直接定义多个ptr-content会导致异常。最后绑定用户点击tab的事件,动态解绑/绑定ptr后解决。 在HTML中这样定义ptr,只需在tab-1(…
扫描二维码继续阅读
2018-05-29