JS分页控件

分页插件代码:

 1 (function ($) {
 2     $.fn.pager = function (options) {
 3         var opts = $.extend({}, $.fn.pager.defaults, options);
 4         return this.each(function () {
 5             $(this).empty().append(renderpager(parseInt(options.pagenumber), parseInt(options.pagecount), options.buttonClickCallback));
 6             $(‘.pages li‘).mouseover(function () { document.body.style.cursor = "pointer"; }).mouseout(function () { document.body.style.cursor = "auto"; });
 7         });
 8     };
 9
10     function renderpager(pagenumber, pagecount, buttonClickCallback) {
11         var $pager = $(‘<ul class="pages"></ul>‘);
12         $pager.append(renderButton(‘首页‘, pagenumber, pagecount, buttonClickCallback)).append(renderButton(‘上一页‘, pagenumber, pagecount, buttonClickCallback));
13         var startPoint = 1;
14         //var endPoint = pagecount < 9 ? pagecount : 9;
15         var endPoint = pagecount < 7 ? pagecount : 7;
16         //var thpoint = "<li class=‘thpoint‘>...</li>";
17         var thpoint = "";
18         if (pagenumber > 4) {
19             startPoint = pagenumber - 3;
20             endPoint = pagenumber + 3;
21         }
22         if (endPoint > pagecount) {
23             startPoint = pagecount - 6;
24             endPoint = pagecount;
25             thpoint = "";
26         }
27         if (startPoint < 1) {
28             startPoint = 1;
29         }
30         for (var page = startPoint; page <= endPoint; page++) {
31             var currentButton = $(‘<li class="page-number">‘ + (page) + ‘</li>‘);
32             page == pagenumber ? currentButton.addClass(‘pgCurrent‘) : currentButton.click(function () {
33                 buttonClickCallback(this.firstChild.data);
34             });
35             currentButton.appendTo($pager);
36         }
37         $pager.append(thpoint).append(renderButton(‘下一页‘, pagenumber, pagecount, buttonClickCallback)).append(renderButton(‘末页‘, pagenumber, pagecount, buttonClickCallback));
38         $pager.append("<li class=‘thpoint‘>共: " + pagecount + " 页</li>");
39         //var strgoto = $("<li class=‘thpoint‘>当前<input type=‘text‘ value=‘" + pagenumber + "‘maxlength=‘6‘ id=‘gotoval‘ style=‘width:20px; height:16px;margin-top:-3px;padding-top:2px;padding-left:10px;‘/>页</li>");
40         var strgoto = "";
41         $pager.append(strgoto);
42         //$pager.append(changepage(‘go‘, pagecount, buttonClickCallback));
43         return $pager;
44     }
45     function changepage(buttonLabel, pagecount, buttonClickCallback) {
46         var $btngoto = $(‘<li class="pgNext">‘ + buttonLabel + ‘</li>‘);
47         $btngoto.click(function () {
48             var gotoval = $(‘#gotoval‘).val();
49             var patrn = /^[1-9]{1,20}$/;
50             if (!patrn.exec(gotoval)) {
51                 alert("请输入非零的正整数!");
52                 return false;
53             }
54             var intval = parseInt(gotoval);
55             if (intval > pagecount) {
56                 alert("您输入的页面超过总页数 " + pagecount);
57                 return;
58             }
59             buttonClickCallback(intval);
60         });
61         return $btngoto;
62     }
63
64     function renderButton(buttonLabel, pagenumber, pagecount, buttonClickCallback) {
65         var $Button = $(‘<li class="pgNext">‘ + buttonLabel + ‘</li>‘);
66         var destPage = 1;
67         switch (buttonLabel) {
68             case "首页":
69                 destPage = 1;
70                 break;
71             case "上一页":
72                 destPage = pagenumber - 1;
73                 break;
74             case "下一页":
75                 destPage = pagenumber + 1;
76                 break;
77             case "末页":
78                 destPage = pagecount;
79                 break;
80         }
81         if (buttonLabel == "首页" || buttonLabel == "上一页") {
82             pagenumber <= 1 ? $Button.addClass(‘pgEmpty‘) : $Button.click(function () { buttonClickCallback(destPage); });
83         }
84         else {
85             pagenumber >= pagecount ? $Button.addClass(‘pgEmpty‘) : $Button.click(function () { buttonClickCallback(destPage); });
86         }
87         return $Button;
88     }
89
90     $.fn.pager.defaults = {
91         pagenumber: 1,
92         pagecount: 1
93     };
94 })(jQuery);

页面调用JS

 1 var invert = {
 2     pager: function (pageIndex) {
 3
 4                   $("#pager").pager({
 5                       pagenumber: pageIndex,
 6                       pagecount: data.pageNum,
 7                       totalcount: data.totalCount,
 8                       buttonClickCallback: invert.pageClick
 9                   });
10
11
12
13               }
14
15     },
16     pageClick: function (pageclickednumber) {//分页回调
17         var status = invert.getStatus();
18         invert.pager(pageclickednumber,status);
19     }
20 };

<div id="pager" class="w-page">

</div>

分页样式

 1 /* jquery.page.js css  */
 2 .w-page{margin:40px auto 30px;}
 3 ul.pages {display:block;border:none;text-transform:uppercase;font-size:12px; display: inline-block; padding:0; overflow: hidden; font-size: 14px;}
 4 ul.pages li {list-style:none;float:left;text-decoration:none;margin:0 15px 0 0;padding:6px 10px;color:#b6b6b6;background-color:#c6c6c6; color: #fff;}
 5 ul.pages li:hover {background-color:#ff4747;}
 6 ul.pages li.pgEmpty,li.pgNext { color:#fff; background-color:#c6c6c6; padding:6px 10px;}
 7 ul.pages li.pgCurrent { color:#fff;font-weight:700;background:#ff4747;}
 8 div#pager{text-align:center;}
 9 #pager .count:hover,#pager .thpoint:hover{background-color:#c6c6c6;}
10 #pager .thpoint,ul.pages li.pgEmpty{cursor: default;}

时间: 2024-11-06 10:07:14

JS分页控件的相关文章

使用amaze ui的分页样式封装一个通用的JS分页控件

作为一名码农,天天百度.偶尔谷歌,所有代码全靠copy,用第三方插件,偶尔也想着造造轮子,毕竟自己的骨肉总归比较亲. 今天有点空闲时间,想起我们公司之前套的页面的分页插件上还有bug,而写那个分页插件的小伙子已经离职,就决定自己来写一个. 首先,肯定是用我们的妹子UI做样式效果,毕竟开发妹子少,做的东西能和妹子沾点边,就沾一点,毕竟妹子比较好看. 然后 开始吧 第一步 找到妹子UI的分页HTML代码,一共有2种,我喜欢第一种,比较有颜 这是妹子UI的分页代码 <ul data-am-widget

仿淘宝分页按钮效果简单美观易使用的JS分页控件

分页按钮思想: 1.少于9页,全部显示 2.大于9页,1.2页显示,中间页码当前页为中心,前后各留两个页码 附件中有完整例子的压缩包下载.已更新到最新版本 先看效果图: 01输入框焦点效果 02效果 模仿淘宝的分页按钮效果控件kkpager  JS代码: Js代码   var kkpager = { //divID pagerid : 'div_pager', //当前页码 pno : 1, //总页码 total : 1, //总数据条数 totalRecords : 0, //是否显示总页数

日积月累系列之分页控件(js源码)

最近开发了一款分页控件,分享给大家. 主要功能和界面介绍 cform分页控件支持服务端分页.客户端分页.数据过滤.数据排序等功能. 源码介绍 cform-pager分页控件主要由三部分组成:css.scripts以及index.html,css主要是用于控制分页和列表的样式:scripts主要是负责分页数据抓取.分页控件.本地缓存.数据过滤.数据排序等功能:index.html则涉及了分页数据模板.分页容器以及相应的过滤.排序按钮. scripts介绍 scripts目录下面包含了cform-m

纯手写分页控件CSS+JS+SQL

Asp.net中虽然用DataPager配合ListView可以实现分页显示,但是有时候由于开发环境等问题不能用到DataPager控件,那么自己手工写一个分页控件就很有必要了,当然,最重要的是通用性. 首先,来看一下我的分页控件的显示效果: 简单说明:红底色的为当前页,白底红字的是选择新的页,共有1236页,默认从第1页开始显示,分页行长度含“……”共11格,有全显示,单边省略和两边省略三种模式. 当你仔细看完上图的显示效果并理解其分页的相应变化后,我们就要开始制作这个分页了:) 第一步)获取

paginationjs一款功能强大的分页控件

在项目中,很多时候需要分页控件,分页控件自己写也比较简单,但是要写一个功能丰富的分页控件话,就麻烦了,这里推荐一款不错的空间,页数太多的话,显示总页数,搜索指定页码. github地址:https://github.com/superRaytin/paginationjs 简单demo代码: <!DOCTYPE html> <html> <head> <title>Paginationjs example</title> <meta htt

福利到~分享一个基于jquery的分页控件

前台分页控件有很多,以下是我的实现.默认情况下,点击页码会像博客园一样,在url后面加上"#p页码". 有2个参数需要注意: beforeRender: 在每个页码项呈现前会被调用,参数为页码的jQuery对象.这个时候我们可以在呈现前做一些处理,例如增加自己的属性等.默认情况下,点击页码,会在url后面加上“#p页码”,这样的url并不会刷新页面.如果我们需要刷新页面,例如url为,"default.aspx?index=页码",就可以在这个回调函数里处理. ca

【asp.net爬虫】asp.NET分页控件抓取第n页数据 javascript:__doPostBack

最近在模拟HTTP请求抓取数据,但是服务器是asp.net开发的 分页控件代码 <tr> <td align="left">共&nbsp210&nbsp条记录&nbsp--&nbsp第&nbsp2&nbsp页&nbsp--&nbsp共&nbsp3&nbsp页</td><td align="right"><a id="Orac

分页控件之jPaginate

1.网上搜索相关的分页控件,下载它的demo文件 2.打开demo文件,里面会有一个html静态页,打开研究 3.查看源代码,找出控件所依赖的js和css 开始实操: 1.新建一个html或者aspx页面,把控件依赖的js和css拉入项目并在页面中引用 2.创建一个div,对其进行控件的初始化,直接复制demo下的源代码即可 3.现在浏览就应该会出现效果了. ---经过以上,仅仅是把控件展示在项目中,但是还没有和我们的业务进行相关的绑定!!! ----重点来了. 当浏览器/Ajax发出请求分页数

.net core 学习笔记(1)-分页控件的使用

最近有个小项目,用.net core开发练练手,碰到的第一个问题就是分页控件的问题,自己写太费时间,上网查了下,发现有人已经封装好了的,就拿过来用了,分页控件github:https://github.com/sgjsakura/AspNetCore/blob/master/PagerDemo.md 使用方法也很简单 后台代码如下:期中list是数据返回的数据,pagesize是每页的数量,page是当前页数,totalcount-总条数,pagenum-总页数 var model= new P