mui上拉加载

最近在做移动端的项目,用到了mui的上拉加载,整理如下:

1、需要引入的css、js

<link rel="stylesheet" href="common/mui/css/mui.min.css">

<script src="js/jquery-3.2.0.min.js"></script>

<script src="common/mui/js/mui.min.js"></script>

2、静态页的dom结构

<div id="pullrefresh" class="mui-content mui-scroll-wrapper" class="maincon">

<div class="mui-scroll">
<div class="mui-table-view mui-table-view-chevron">

</div>
</div>
</div>

3、静态页面 js对应的代码

<script type="text/javascript">

(function(){
//上拉加载下拉刷新
mui.init({
  pullRefresh: {
  container: ‘#pullrefresh‘,
  up: {
    contentrefresh: ‘正在加载...‘,
    callback: pullupRefresh
    }
  }
});

//加载更多
var dataNum=12;//获取数据总数
var pageSize=3;//每页显示条数
var counter=1;//计数器
var pageStart=0;//开始数据条数

getData(pageStart,pageSize);

function getData(pageStart,pageSize){
//显示数不足每页显示条数
if(dataNum-pageStart<pageSize){
pageSize=dataNum-pageStart;
data(pageStart,pageSize);
console.log("显示数不足每页显示条数");
}
//显示隐藏加载更多
else if(pageStart+pageSize>=dataNum){
data(pageStart,pageSize);
console.log("没有更多数据了");
//没有更多数据了
}else{
data(pageStart,pageSize);
console.log("显示dataNum"+dataNum+"pageSize"+pageSize+"pageStart"+pageStart);
//显示
}

}

function data(pageStart,pageSize){
//业务
var result="";
for(var i=pageStart;i<(pageStart+pageSize);i++){
result+=‘<div class="goode-msg">‘+
‘<div class="goods">‘+
‘<p class="goode-name">呜呜呜呜</p>‘+
‘<span class="goods-price">价格:10元</span>‘+
‘<span class="icon-golden"></span>‘+
‘<span class="goods-golden">送1111</span>‘+
‘</div>‘+
‘<div class="buycon">‘+
‘<a class="buybtn buybtnabled" onclick="shop(5)">立即购买</a>‘+
‘</div>‘+
‘</div>‘
}
console.log(jQuery);
jQuery(result).insertBefore(‘#pullrefresh .mui-scroll .mui-table-view‘);

}
/**
* 上拉加载具体业务实现
*/
function pullupRefresh() {
setTimeout(function() {
var flag=counter++<(dataNum/pageSize)
console.log(dataNum/pageSize);
mui(‘#pullrefresh‘).pullRefresh().endPullupToRefresh((!flag)); //参数为true代表没有更多数据了。
var scroll = document.body.querySelector(‘.mui-scroll .mui-table-view‘);
var item = document.body.querySelectorAll(‘.goode-msg‘);
console.log(counter);
if(flag){
console.log(counter);
pageStart=counter*pageSize;
data(pageStart,pageSize);
}

}, 1500);
}
})();

</script>

4、与服务端联调时 js做了改动,如下:

    //加载更多    var pageSize = 15;//每页显示条数    var counter = 1;//计数器    var pageStart = 0;//开始数据条数    var Flag=true;

data();

function data() {        //业务        var result = "";        $.ajax({            type: ‘post‘,            url: ‘/xxx/xxx‘,            async: false,            dataType: "json",            data: {page: counter},            success: function (data) {                Flag=data[0].dd==null||data[0].dd==undefined||data[0].dd==‘‘;//判断是否有返回值 当没有返回值的时候就为空,则代表没有更多数据了
                console.log(Flag);                if(Flag==false){                    counter++;                }                $.each(data[0].dd, function (i, value) {                    result += ‘<div class="goode-msg">‘ +                            ‘<div class="goods">‘ +                            ‘<input type="hidden" class="id" value="‘+value.id+‘">‘ +                            ‘<input type="hidden" class="aa" value="‘+value.aa+‘">‘ +                            ‘<p class="goode-name" id="title‘+value.id+‘">‘+value.title+‘</p>‘ +                            ‘<input type="hidden" class="goods-price-cent" value="‘+value.price.cent/100+‘">‘ +                            ‘<span class="goods-price">价格:<b id="price‘+value.id+‘">‘+value.price.cent/100+‘</b>元</span>‘ +                            ‘<span class="icon-golden"></span>‘ +                            ‘<span class="goods-golden">送<b id="ss‘+value.id+‘">‘+value.ss+‘</b>ss</span>‘ +                            ‘</div>‘ +                            ‘<div class="buycon">‘ +                            ‘<a class="buybtn buybtnabled" onclick="shop(‘+i+‘)">立即购买</a>‘ +                            ‘</div>‘ +                            ‘</div>‘                });

jQuery(result).insertBefore(‘#pullrefresh .mui-scroll .mui-table-view‘);            }        }    );

}/** * 上拉加载具体业务实现 */function pullupRefresh() {    setTimeout(function () {        mui(‘#pullrefresh‘).pullRefresh().endPullupToRefresh((Flag)); //参数为true代表没有更多数据了。        data();    }, 1500);}})();

5、踩的坑

注意:一定要先引入jquery、mui.js否则 js代码会不识别mui。

在jquery中,如果要给动态生成的节点绑定事件,以前要用live,现在用delegate或者on,原理是利用冒泡实现事件委托,也就是给生成节点的父节点预先绑定事件。

时间: 2024-10-06 00:40:05

mui上拉加载的相关文章

mui 上拉加载更多的使用

最近工作之余在用mui的框架开发,对mui了解了一些.在真正的app开发项目中,mui上拉加载模块中有两个坑,现在说一下. 1.在函数自己上拉加载行为后的回调函数 该函数是必须要写的,用来写自己的逻辑需求,但是一般情况下,需要设置显示为"加载更多"还是"没有更多数据了". 看了一些博客和官方文档,基本上都把这个设置放在了定时器中 在定时器中调用获取数据的方法(自己的业务需求) 2.在mui封装的上拉加载中,点击某一项会失效.这个是真的很坑.不过网上也有解决方法.就是

MUI - 上拉加载不执行

mui('#pullrefresh').pullRefresh().refresh(true); if($(".list-item").length == countDataSum) { mui('#pullrefresh').pullRefresh().endPullupToRefresh(true); //参数为true代表没有更多数据了. } else { mui('#pullrefresh').pullRefresh().endPullupToRefresh(false); }

MUI上拉加载下拉刷新

<!-- 作者:2444626121@qq.com 时间:2017-11-02 描述:如果有问题请邮箱联系我,并注明来自博客园,谢谢呢^o^ --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,min

mui上拉加载更多的使用

demo地址 我的另一博客原文链接gitHub地址 mui框架中上拉加载的坑 1.在函数自己上拉加载行为后的回调函数 2.在mui封装的上拉加载中,点击某一项会失效. 解决方法 1.该函数是必须要写的,用来写自己的逻辑需求,但是一般情况下,需要设置显示为"加载更多"还是"没有更多数据了".看了一些博客和官方文档,基本上都把这个设置放在了定时器中并在定时器中调用获取数据的方法(自己的业务需求). 2.在mui封装的上拉加载中,点击某一项会失效.这个是真的很坑.就是采用

mui上拉加载会影响页面中的某些点击事件

项目是vue写的(移动端) <div class="mui-scroll"> <a :href="bannerinfo.activity_url" class="icon play"> 链接点击没反应(点元素的最左边才会跳转) </a> <a :href="'tel:'+item.ac_mobile"> {{item.ac_mobile}} 电话号码点击没反应(点元素的最左边才会

angual+mui 双栏上拉加载,微信里面禁用默认事件可用,可以防止浏览器回弹效果

//html 部分 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; color: #2eafa9 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; color: #a5b2b9 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; color: #596972 }

angual+ mui 导航切换实现上拉加载

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; color: #2b9edb } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; min-height: 18.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; color: #d76019 } p.p4 {

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

套用mui官方文档的一句话:"开发者只需关心业务逻辑,实现加载更多数据即可".真的是不错的框架. 想更多的了解这个框架:http://dev.dcloud.net.cn/mui/ 那么如何实现上拉刷新,下拉加载的功呢? 首先需要一个容器: 1 <!--下拉刷新容器--> 2 <div id="refreshContainer" class="mui-content mui-scroll-wrapper"> 3 <di

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

有些事情经历过之后才会发现,原来再次之前我是如此的啥,因为是第一次做,毫无头绪,有时会想假如有个一demo就好了,那么就不会花费这么多的无用功了.今天使用mui 的webview实现了一个H5页面的上拉加载下拉刷新的效果,拿出来和大家一起分享一下,希望各位博友有用,当然啦有的时候坑会很多,但是只要我们学会用思考的方式去找问题,不管是什么问题我们都是可以解决的.小弟的文采不好,有错误请指出来,一定虚心接受 //首先在此之前我们先要引用jquery的插件,以及mui.js插件 <!--html代码-