MUI - 上拉刷新/下拉加载
新闻信息列表必备的功能,支持Table,Ul等列表.
以下是DIV版本,在安卓端或者ios端必须使用双webview模式,传送门:http://dev.dcloud.net.cn/mui/pulldown/
<!--下拉刷新容器-->
<div id="pullrefresh" class="mui-content mui-scroll-wrapper">
<div class="mui-scroll">
<!--数据列表-->
<ul class="mui-table-view">
</ul>
</div>
</div>
<script type="text/javascript">
mui.init
({
pullRefresh:
{
container: '#pullrefresh',
down: {
callback: pulldownRefresh
},
up: {
contentrefresh: '正在加载...',
callback: pullupRefresh
}
}
});
/*
* 下拉刷新具体业务实现
*/
function pulldownRefresh()
{
setTimeout(function()
{
var table = document.body.querySelector('.mui-table-view');
var cells = document.body.querySelectorAll('.mui-table-view-cell');
//模拟数据
for (var i = cells.length, len = i + 3; i < len; i++) {
var li = document.createElement('li');
li.className = 'mui-table-view-cell';
li.innerHTML = '<a class="mui-navigate-right">Item ' + (i + 1) + '</a>';
//下拉刷新,新纪录插到最前面;
table.insertBefore(li, table.firstChild);
}
mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //refresh completed
}, 1500);
}
var count = 0;
/*
* 上拉加载具体业务实现
*/
function pullupRefresh()
{
setTimeout(function() {
mui('#pullrefresh').pullRefresh().endPullupToRefresh((++count > 2)); //参数为true代表没有更多数据了。
var table = document.body.querySelector('.mui-table-view');
var cells = document.body.querySelectorAll('.mui-table-view-cell');
for (var i = cells.length, len = i + 20; i < len; i++) {
var li = document.createElement('li');
li.className = 'mui-table-view-cell';
li.innerHTML = '<a class="mui-navigate-right">Item ' + (i + 1) + '</a>';
table.appendChild(li);
}
}, 1500);
}
if (mui.os.plus) {
mui.plusReady(function() {
setTimeout(function() {
mui('#pullrefresh').pullRefresh().pullupLoading();
}, 1000);
});
} else
{
mui.ready(function() {
mui('#pullrefresh').pullRefresh().pullupLoading();
});
}
</script>
个人心得
1、手动加载loading,并且会立即调用[下拉刷新]绑定的函数
mui('#pullrefresh').pullRefresh().pullupLoading(); //使用这个之后,自动会加载[下拉刷新]绑定的函数
2、停止上拉刷新和下拉加载的loading
mui('#pullrefresh').pullRefresh().endPullupToRefresh(num >= cnt); //参数可以为返回true/false的表达式
mui('#pullrefresh').pullRefresh().endPulldownToRefresh();
3、初始化
初始化时通常要将原数据列表清空,如:$("#mui-table-view").html("");
那么请务必将以下代码放置在清空代码之后.这和scroll的滚动性质有关
mui('#pullrefresh').pullRefresh().refresh(true); //恢复滚动
mui('#pullrefresh').pullRefresh().scrollTo(0,0,100); //滚动置顶
4、Iscroll方面的扩展和内容
http://www.cnblogs.com/CyLee/p/5324622.html
5 Vue使用
<template>
<div>
<header class="mui-bar mui-bar-nav">
<button @click="model" class=" mui-btn mui-btn-blue mui-btn-link mui-btn-nav mui-pull-left"><span class="mui-icon mui-icon-left-nav"></span>{{ modelName }}</button>
<h1 class="mui-title">笑话大全</h1>
</header>
<div class="mui-content mui-scroll-wrapper" id="pullrefresh" >
<div class="mui-scroll">
<div class="mui-card" v-for="item in items">
<div class="mui-card-header mui-card-media" style="">
<div class="mui-card-content-inner">
<p style="color: #333;">{{ item.content }}</p>
</div>
</div>
<div class="mui-card-content" v-if="item.url">
<img :src=" item.url " width="100%" height="100%" draggable="false"/>
</div>
<div class="mui-card-footer">
Posted on {{ item.updatetime }}
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data () {
return {
items:[],
page :1,
pagesize:5,
count:0,
modelName:"图文"
};
},
methods : {
getJoke () {
let self = this;
var model = self.modelName == "图文" ? "pic" : "";
$.ajax({
type:"get",
url:`http://localhost:8090?${model}&page=${self.page}&pagesize=${self.pagesize}`,
success (data) {
let json = JSON.parse(data).result.data;
self.items = self.items.concat(json); // 合并并且返回一个新数组
self.page += 1;
self.count += 10;
mui('#pullrefresh').pullRefresh().endPullupToRefresh(self.count >= 1000);
}
})
},
model () {
this.modelName = this.modelName == "图文" ? "文字" : "图文";
this.items = [];
this.getJoke();
},
pulldownRefresh () {
setTimeout(() => {
mui('#pullrefresh').pullRefresh().endPulldownToRefresh();
},1500)
},
pullupRefresh () {
this.getJoke();
}
},
created () {
let self = this;
mui.ready(function(){
mui.init
({
pullRefresh:
{
container: '#pullrefresh',
down: {
callback: self.pulldownRefresh
},
up: {
contentrefresh: '正在加载...',
callback: self.pullupRefresh
}
}
});
self.getJoke();
})
}
};
</script>
<style lang="css" scoped>
.mui-card:nth-last-child(1){margin-bottom:70px;}
.mui-card-header>img:first-child{width:100%;height: 100%;}
.mui-pull-bottom-pocket{position:inherit}
</style>
MUI - 上拉刷新/下拉加载的更多相关文章
- jQuery模拟原生态App上拉刷新下拉加载
jQuery模拟原生态App上拉刷新下拉加载效果代码,鼠标上拉时会显示loading字样,并且会模拟加载一条静态数据,支持触屏设备使用. <!doctype html> <html ...
- Android之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载
随着 Google 推出了全新的设计语言 Material Design,还迎来了新的 Android 支持库 v7,其中就包含了 Material Design 设计语言中关于 Card 卡片概念的 ...
- Flutter学习笔记(25)--ListView实现上拉刷新下拉加载
如需转载,请注明出处:Flutter学习笔记(25)--ListView实现上拉刷新下拉加载 前面我们有写过ListView的使用:Flutter学习笔记(12)--列表组件,当列表的数据非常多时,需 ...
- 微信小程序 上拉刷新/下拉加载
小程序项目中上拉刷新下拉加载是比较常见的需求,官方文档也提供了相当友好的API,但是因为API隐藏的比较深,文档描述也比较模糊所以也折腾了一番(官方文档),在此记录一下使用方式 onPullDownR ...
- ListView上拉刷新和分页加载完整的Dome
很多人工作的过程中都会碰到ListView下拉刷新和分页加载,然后大多数公司都已经把框架写好了,大家直接用就可以了,有些人一直对这个事情处于迷茫状态,为了让大家对上拉刷新和分页加载有一个比较全面的认识 ...
- jQuery WeUI 组件下拉刷新和滚动加载的实现
最近在做手机版使用到了下拉刷新和滚动加载,记录一下实现过程: 一.引入文件 ? 1 2 3 4 <link rel="stylesheet" href="Conte ...
- 实现app上对csdn的文章列表上拉刷新下拉加载以及加入缓存文章列表的功能 (制作csdn app 四)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/23698511 今天继续对我们的csdn客户端未完成的功能进行实现,本篇博客接着客 ...
- XRecyclerView上拉刷新下拉加载
效果图: 首先要添加依赖: //xrecyclerviewimplementation 'com.jcodecraeer:xrecyclerview:1.3.2'//Gsonimplementatio ...
- iOS:延迟加载和上拉刷新/下拉加载的实现
lazy懒加载(延迟加载)UITableView 举个例子,当我们在用网易新闻App时,看着那么多的新闻,并不是所有的都是我们感兴趣的,有的时候我们只是很快的滑过,想要快速的略过不喜欢的内容,但是只要 ...
随机推荐
- Spring事务解析1-使用介绍
spring的事务控制让我们从复杂的事务处理中得到解脱,是我们再也不需要去处理获得连接,关闭连接,事务提交和回滚等操作,再也不需要在事务相关的方法中处理大量的try..catch...finally代 ...
- DSP using MATLAB 示例Example3.9
用到的性质 上代码: n = 0:100; x = cos(pi*n/2); k = -100:100; w = (pi/100)*k; % freqency between -pi and +pi ...
- psql-06表:约束
默认值 可以理解为建表时没定义的默认值为null,表示未知,//注意和js中null不一样; 建表时设置 create table child(id int, age int default 18); ...
- js:方法1. 数组
Array.every() array.every(f); array.every(f, o); f(array[i], i, array) [1,2,3].every(function(x) { r ...
- node read file fs
var fs = require("fs") fs.readFile("file.txt","UTF-8",function(err,dat ...
- 转:delphi异常捕获try except语句 和 try finally语句用法
转:http://www.java123.net/v/936977.html 2015-06-24 09:27:48 一直写程序都没管他们,也尽量很少用,今天终于想把他给弄个明白,在网上找来 ...
- 代码审查工具StyleCop
“代码审查”或是“代码评审”(Code Review),这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法.由此,我们可以审查代码的风格.逻辑.思路 ...
- The 2015 China Collegiate Programming Contest L. Huatuo's Medicine hdu 5551
Huatuo's Medicine Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others ...
- python 代码片段21
#coding=utf-8 @doco def foo(): pass ''' deco把foo函数拿过来,加上一些额外的功能再重新赋值给foo,如下 ''' foo=deco(foo) def lo ...
- python 代码片段20
#coding=utf-8 # 函数 def foo(x): print x foo(123) # import httplib def check_web_server(host,port,path ...