pc加载更多功能和移动端下拉刷新加载数据

网友投稿 291 2023-06-30


pc加载更多功能和移动端下拉刷新加载数据

感觉一个人玩lol也没意思了,玩会手机,看到这个下拉刷新功能就写了这个demo!

这个demo写的比较随意,咱不能当做插件使用,基本思想是没问题的,要用就自己封装吧!

直接上代码分析下吧!

布局:

就2行,只为实现功能,足矣!

js也不复杂,先定义2个变量,贯穿整个demo,进了不要全局变量,当然,封装的时候也可以当做闭包参数!

var m=0,n=2;//m:button点击次数 n:一次加载几条数据

请求:

$.ajax('paging.html')

这里我就写的本页面地址作为测试url。

下面请求成功后的处理就是重点了:

var obj={developer:[{name:'nick'},{name:'ljy'},{name:'xzl'},{name:'jeson'},{name:'yst'},{name:'zhw'},{name:'wqq'}]}

response=obj.developer;//假设请求到的数据是obj

m++;

var data='',elm='';

if(m>(response.length%n==0?response.length/n:parseInt(response.length/n))){

data=response.slice(n*(m-1));

$('.page-btn-nick').html('没有更多了');

$('.page-btn-nick').attr('disabled','disabled');

}else{

data=response.slice(n*(m-1),n*m);

}

中心思想:

请求按钮点击一次,m+1,讲请求的数据拆分,只要需要的数据data;

data=response.slice(n*(m-1),n*m);

slice(s,e)函数获取请求到的数据的一部分,s:response的起始位置,e结尾位置(取不到e位置的元素),返回值是一个含头不含尾的数组。

这里由于开始默认加载n条数据,m已经加了一次1了,所以要s和e要对应的改变;

将数据动态加载到页面:

var len=data.length;

for(var i= 0;i

elm+="

  • "+data[i].name+"
  • ";

    elm+="

    }

    $('.show-area').append(elm);

    这里的append()要比html()更优!

    我看有些developer是勇的html(),这样每加载一次,页面中的所有li将全部清空,在重新加载所有的li,感觉每次加载都要加载有点多余的数据,浪费啊……

    看上面的数据就知道,我是讲每次请求的数据在slice()一次,在添加到页面。这要写我每加载一次,只把这次加载的数据append到ul的最后,以前的li并不会清空,这要加载的数据就是每次想要多加的必要数据,没有重复添加,感觉给力点吧!

    后面我把请求数据的getData()作为button点击事件处理函数,同时放在判断后的下拉事件中,就可以实现点击按钮动态加载数据和下拉刷新加载数据了!

    最后附上完整代码:

    WrJdV

    可以直接复制完整代码,webstorm打开看看看,测试下吧!

    移动端下拉事件就一笔带过了,可以参考我写的有关于移动化滑动事件的文章!


    版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

    上一篇:easyUI实现(alert)提示框自动关闭的实例代码
    下一篇:POI对Excel自定义日期格式的读取(实例代码)
    相关文章

     发表评论

    暂时没有评论,来抢沙发吧~