最近做项目用到mui开发移动端,其中有一个需求就是多层嵌套切换下拉刷新,实现不同的tab刷新不同的内容。

下面记录一下思路与具体的实现方法。

思路:

1、可以共用一个滚动下拉外壳  mui-scroll-wrapper

2、当下拉时判断当前被选中的是哪个tab ,从而渲染那个tab

步骤:

1.首先,引入mui框架的依赖,mui.css和mui.js,模板渲染插件art-template.js

<link rel="stylesheet" href="dist/mui/css/mui.css"> //mui  样式文件
<script rel="stylesheet" src="dist/mui/js/mui.min.js"></script>//(mui js文件)
<script rel="stylesheet" src="js/zepto.min.js"></script>//js框架库(适用于移动端)
<script rel="stylesheet" src="js/art-template.js"></script>//模板渲染插件

2.将mui-scroll-wrapper放到最外层,包裹住所有的切换内容,具体html结构如下

<div class="out mui-content mui-scroll-wrapper" id="refreshContainer" ><div class='mui-scroll'><section class="notice"><ul class="tab"><li class="active"><a href="javascript:;">tab1</a></li><li><a href="javascript:;">tab2</a></li><li><a href="javascript:;">tab3</a></li></ul><ul class="tab_list pinglun"><li class="on" data-temp= '1'><p><a href="javascript:;" class="active">第二层tab1</a><a href="javascript:;">第二层tab2</a><a href="javascript:;">第二层tab3</a></p><div class="table_list"><div class="on">具体内层div1</div><div>具体内层div2</div><div>具体内层div3</div></div></li><li><p><a href="javascript:;" class="active">第二层tab1</a><a href="javascript:;">第二层tab2</a><a href="javascript:;">第二层tab3</a></p><div class="table_list"><div class="on">具体内层div1</div><div>具体内层div2</div><div>具体内层div3</div></div></li><li ><p><a href="javascript:;" class="active">第二层tab1</a><a href="javascript:;">第二层tab2</a><a href="javascript:;">第二层tab3</a></p><div class="table_list"><div class="on">具体内层div1</div><div>具体内层div2</div><div>具体内层div3</div></div></li></ul></section></div>
</div>

3,到这里结构已经实现,tab切换网上一搜到处是demo,这里就不啰嗦了。下面初始化下拉刷新和模板渲染

  模板渲染:考虑到不同的tab用到的模板不同,所以给每个tab一个data-temp属性用来区别判断当前需要哪个渲染模板:

<script id="type1" type="text/html">{{each list as item}}<span>我是刷新的模拟新数据</span>{{/each}}
</script>
<script id="test" type="text/html">{{each list as item}}<span>我是第二种模板渲染</span>{{/each}}
</script>

  mui上拉加载初始化:

var data = {    list: [{        'id': '18',        'imagesUrl': 'images/111.png',        'name': '新数据1',        'jifen': '233',        'url': '1.html'    },        {
'id': '18',        'imagesUrl': 'images/111.png',        'name': '新数据2',        'jifen': '233',        'url': '1.html'
        }};
mui.init({pullRefresh : {container:"#refreshContainer",//上拉加载容器标识,querySelector能定位的css选择器均可,比如:id、.class等
            up : {height:50,//可选.默认50.触发上拉加载拖动距离auto:false,//可选,默认false.自动上拉加载一次contentrefresh : "正在加载...",//可选,正在加载状态时,上拉加载控件上显示的标题内容contentnomore:'没有更多数据了',//可选,请求完毕若没有更多数据时显示的提醒内容;callback :function(){var html =''//判断不同的下拉刷新,选择不同的渲染模板 同样,data数据也要经过判断然后向后台发送请求if($('.pinglun li.on').attr('data-temp')=='1'){html = template('type1', data);//data为模拟的json对象,小伙伴可以自己模拟一下,或者直接有接口用ajax获取到数据,那就是真正的动态刷新了}else{html = template('test', data);}var that = $(this);var content = $('.pinglun li.on div.on');//找到当前切换状态的div。然后在这里面动态渲染数据html= content.html()+html;content.html(html);setTimeout(function(){mui('#refreshContainer').pullRefresh().endPullupToRefresh();},1000)} //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据;
            }}});

转载于:https://www.cnblogs.com/sisimu/p/8688723.html

mui多层tab切换上拉加载的实现相关推荐

  1. Mui Webview下来刷新上拉加载实现

    有些事情经历过之后才会发现,原来再次之前我是如此的啥,因为是第一次做,毫无头绪,有时会想假如有个一demo就好了,那么就不会花费这么多的无用功了.今天使用mui 的webview实现了一个H5页面的上 ...

  2. html5上拉下拉刷新,APP 上拉加载,下拉刷新 介绍

    开发APP时,很多时候都会用上,上拉加载数据,下拉刷新等功能,本文件介绍两种. 一种是原生APP自带的上拉加载,下拉刷新功能,一种是用JS 插件写的上拉加载,下拉刷新. 1.原生APP 的 上拉加载, ...

  3. Vant Tab标签页+下拉刷新+上拉加载

    Vant Tab标签页+下拉刷新+上拉加载 <template><div class="invoicePickupBox"><div class=&q ...

  4. mui用ajax上拉加载更多,mui上拉加载更多的使用

    demo地址 mui框架中上拉加载的坑 1.在函数自己上拉加载行为后的回调函数 2.在mui封装的上拉加载中,点击某一项会失效. 解决方法 1.该函数是必须要写的,用来写自己的逻辑需求,但是一般情况下 ...

  5. 使用MUI框架,模拟手机端的下拉刷新,上拉加载操作。

    套用mui官方文档的一句话:"开发者只需关心业务逻辑,实现加载更多数据即可".真的是不错的框架. 想更多的了解这个框架:http://dev.dcloud.net.cn/mui/ ...

  6. MUI框架的上拉加载的深入探索和实战运用

    文章目录 上拉加载 初始化 端部上拉载荷 重置上拉加载 禁用上拉刷新 启用上拉刷新 选项卡更改图标 mui变量和plus变量分别是什么 网络请求必须用mui.ajax,调试必须用真机或模拟器 上拉加载 ...

  7. 小程序上拉加载更多数据,分类切换状态等实例

    发现很多人对小程序的文章比较好奇,购物车那篇居然占了快三分一的访问量,因此写多篇关于小程序的常用功能. 上拉加载更多其实很简单,关键点只是知道上拉加载是变相的分页加载,然后通过初始化记录值和通过数组来 ...

  8. Jquery 实现H5页面上拉加载更多

    在最新的H5开发项目中,需要开发上拉加载更多的功能,如何实现上拉加载更多,网上有很多插件可以实现,如:mescroll.mui.isScroll等等,最初我也是选择了使用插件,但在使用过程中发现了如果 ...

  9. 安卓实现下拉刷新上拉加载

    前言 Android智能下拉刷新框架-SmartRefreshLayout 是github 上的一个开源框架,地址https://github.com/scwang90/SmartRefreshLay ...

  10. DCloud-MUI:下拉刷新、上拉加载

    ylbtech-DCloud-MUI:下拉刷新.上拉加载 1. 下拉刷新返回顶部 0. http://dev.dcloud.net.cn/mui/pulldown/ 1. 概述 为实现下拉刷新功能,大 ...

最新文章

  1. tar -P参数含义
  2. 访问 Neutron 外部网络 - 每天5分钟玩转 OpenStack(143)
  3. 面试官系统精讲Java源码及大厂真题 - 41 突破难点:如何看 Lambda 源码
  4. 通常情况下的中国剩余定理
  5. 澜起科技加速中国本土数据中心解决方案进程
  6. 无法导入某些项目,因为它们已经存在于Eclipse中的工作区错误中
  7. 麻雀虽小五脏俱全----blender介绍
  8. 如何读取csv文件并将其转化为tsv文件
  9. 5款超级无敌好用的电脑软件 建议收藏!
  10. linux stm32 swd,stm32 JTAG和SWD的使用区别
  11. matlab建立rbf网络,大家看一下,这组数据Matlab如何构建RBF神经网络!!!!
  12. ubuntu 18.04 安装gdb
  13. 2013年08月威海之旅
  14. 英雄联盟账号服务器查询,lol战绩查询系统
  15. 第一章 常用半导体器件
  16. Kafka中broker,分区,副本的概念
  17. ComSec作业七 Signature
  18. Python数据分析及可视化实例之“Pandas“
  19. HTTP1.1协议中文版
  20. DWDM 与宽带IP技术

热门文章

  1. (5)Matplotlib_grid
  2. struts教程笔记2
  3. 使用numpy构建卷积网络
  4. 你知道如何计算CNN感受野吗?这里有一份详细指南
  5. ConcurrentHashMap!你居然不知道1.7和1.8可不一样?!
  6. 差分进化算法和遗传算法 区别 谁更好
  7. 区块链 p2p点对点网络是什么
  8. Hyperledger Composer和Hyperledger Fabric的关系、区别及概念
  9. 查询输出优秀人数_sql 第五关多表查询
  10. 基于SSM的医学健康网站