将实时取到的数据进行分页显示的插件
来源:互联网 发布:word文档翻译软件 编辑:程序博客网 时间:2024/06/05 22:43
如题,这里要说的就是这个小插件
为什么要做这样的插件呢,因为公司的产品经理提出了这样的要求!-_-!
数据其实不是很多,也没有传图片,所以还是很快就能取到,但一次显示太多把页面搞的很长,产品说:体验不好,做成分页的。
怎么办呢,苦逼程序员改呗,懒得改css和ajax部分了,而且她要求其他几个页面比较长的也要这个效果,所以就写了个jq插件。
这么简单的功能,所以写起来也就不那么难,主要就是计算什么时候隐藏、什么时候显示、显示多少个、加载过程图
额,就这么点问题吧
下面上代码:
1 $.fn.extend({ 2 loading:function(data){ 3 var anc = $(this); //获取被操作的类 4 var parents=data.parents; //被操作的类的父级标签 5 var bol=true,cut,tipschange,cut1,tipstime,cut2; 6 for(var i=0;i<anc.length;i++){ 7 (function(i){ 8 if(bol){ 9 if(anc.eq(i).offset().top>$(document.body).height()){ //判断一次显示几条数据,根据页面高度判断10 if(i<=2){i=3;}11 cut=i;12 cut2=cut;13 bol=false;14 }15 }16 })(i) 17 }18 anc.parents(parents).append('<p class="tipstexthidden" style="opacity: 0;"></p>'); 19 function hidden(cut){ //隐藏超出页面高度的数据20 for(var i=0;i<anc.length;i++){21 if(i>=cut){22 anc.eq(i).css('display', 'none');23 }24 }25 anc.parents(parents).append('<p class="tipstext">向上拉动,查看更多!</p>') //插入提示框26 $('.tipstext').css({ //提示框css样式27 fontSize: '12px',28 color: '#646464',29 textAlign:'center'30 });31 }32 33 function move(){ //判断并执行显示条目34 tipschange=$('.tipstexthidden').offset().top+$('.tipstexthidden').height()-$(document.body).height();35 if($("body").scrollTop()>=tipschange+20){36 clearInterval(tipstime);37 show();38 }39 }40 function show(){ //显示一定的条目41 anc.parents(parents).append('<div class="tipsphoto" ><img src="img/loading.gif" width="70px" alt=""></div>')42 cut1=cut2+cut;43 $('.tipsphoto').css({44 position: 'fixed',45 top: '50%',46 left:"50%"47 });48 $('.tipsphoto>img').css({49 position: 'relative',50 top: '-50%',51 left:'-50%'52 });53 setTimeout(function(){54 if(cut1<anc.length){55 for(var i=0;i<=cut1;i++){56 57 anc.eq(i).css('display', 'block');58 }59 $('.tipsphoto').css('display', 'none');60 cut2=cut1;61 tipstime=setInterval(move, 30);62 }63 if(cut1>=anc.length){64 for(var i=0;i<=cut1;i++){65 anc.eq(i).css('display', 'block');66 }67 $('.tipsphoto').css('display', 'none');68 $('.tipstext').css('display', 'none');69 }70 }, 2000)71 }72 if(anc.length==0){}else{ //判断有数据显示的时候才执行73 if((anc.eq(anc.length-1).offset().top+anc.eq(0).height())>$(document.body).height()){ //数据高度大于屏幕高度开始执行74 hidden(cut);75 tipstime=setInterval(move, 30); //30ms检测一次是否显示后面的数据76 } 77 }78 79 }80 81 });
以上就是这个插件的全部内容及注释
下面是如何使用
如果你的数据是div的 例如:
1
2
3
4
5
6
7
8
9
10
11
12
<div
class
=
"data"
>
<div>something1</div>
<div>something2</div>
<div>something3</div>
<div>something4</div>
<div>something5</div>
<div>something6</div>
<div>something7</div>
<div>something8</div>
<div>something9</div>
<div>something10</div>
</div>
那么这样引用
1
2
3
$(
'.data>div'
).loading({
'parents'
:
'div'
});
如果你用的是ul>li
就这样:
1
2
3
$(
'.date>li'
).loading({
'parents'
:
'ul'
});
很简单的功能 调用也很简单啦~~
代码很烂 欢迎指正~~
0 0
- 将实时取到的数据进行分页显示的插件
- 关于分页插件pagination的应用及遇到的问题(用ajax请求数据进行拼接后分页显示)
- 分页(对查询出的数据进行分页显示)
- 取一定范围的数据,分页中用到
- 用jsp进行数据分页显示的一个实现
- 用jsp进行数据分页显示的一个实现
- 用jsp进行数据分页显示的一个实现
- Repeater进行模板设计以及实现数据的分页显示
- JSP将后台返回的数据显示并分页
- ExtJs4.1将服务器中的数据进行分页显示
- extjs grid取到数据而不显示的解决
- 对数据进行分页,显示到table中。
- 对数据进行分页,显示到table中
- java中对list进行分页显示数据到页面
- 实时更新数据的jQuery图表插件
- 如何将Excel里的数据显示到界面上
- 如何将查询到的数据显示在DataGridView中
- SpringMVC将数据显示到UI层的方法
- 制作一个可以滑动操作的 Table View Cell
- 编译apache时提示“APR not found”的解决方法
- 谷歌支付验证1
- js 获取当前时间
- 关于jsp引入js的一个问题
- 将实时取到的数据进行分页显示的插件
- 【2015.02.03】 注意事项
- 寻找自适应元素(17)-条件格式
- SecureCRT 解决 删除键 变^H^H^H^H
- 谷歌支付验证2
- c/c++中的位运算
- 优化数据页面(1)——突出标题行
- 关于邮件地址的测试
- C++ Primer Plus第六版课后编程练习答案 6-1