在实际项目开发中,通用的分页组件是必不可少的。下面描述的是关于JavaScript版的分页组件。该组件是基于jquery之上开发的。
该组件包括
jquery-1.3.2.min.js; (jquery 核心类库)
jquery.pager.js; (分页组件类库)
PagerDemo.js; (用于js与html分离)
Pager.css ;
PagerDemo.html
运行效果图如下:

图一、运行效果图
具体实现代码:
jquery.pager.js
(function($) {
$.fn.pager = function(options) {
var opts = $.extend({}, $.fn.pager.defaults, options);
return this.each(function() {
$(this).empty().append(renderpager(parseInt(options.pagenumber), parseInt(options.pagecount), options.buttonClickCallback));
$('.pages li').mouseover(function() { document.body.style.cursor = "pointer"; }).mouseout(function() { document.body.style.cursor = "auto";});
});
};
function renderpager(pagenumber, pagecount, buttonClickCallback) {
var $pager = $('<ul class="pages"></ul>');
$pager.append(renderButton('首页', pagenumber, pagecount, buttonClickCallback)).append(renderButton('上一页', pagenumber, pagecount, buttonClickCallback));
var startPoint = 1;
var endPoint = 9;
var thpoint="<li class='thpoint'>...</li>";
if (pagenumber > 4) {
startPoint = pagenumber - 4;
endPoint = pagenumber + 4;
}
if (endPoint > pagecount) {
startPoint = pagecount - 8;
endPoint = pagecount;
thpoint = "";
}
if (startPoint < 1) {
startPoint = 1;
}
for (var page = startPoint; page <= endPoint; page++) {
var currentButton = $('<li class="page-number">' + (page) + '</li>');
page == pagenumber ? currentButton.addClass('pgCurrent') : currentButton.click(function() {
buttonClickCallback(this.firstChild.data);
});
currentButton.appendTo($pager);
}
$pager.append(thpoint).append(renderButton('下一页', pagenumber, pagecount, buttonClickCallback)).append(renderButton('末页', pagenumber, pagecount, buttonClickCallback));
$pager.append("<li class='thpoint' style='margin-top:3px;'>共: "+pagecount+" 页</li>");
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>");
$pager.append(strgoto);
$pager.append(changepage('go',pagecount,buttonClickCallback));
return $pager;
}
function changepage(buttonLabel,pagecount,buttonClickCallback){
var $btngoto = $('<li class="pgNext">'+ buttonLabel+'</li>');
$btngoto.click(function() {
var gotoval = $('#gotoval').val();
var patrn = /^[1-9]{1,20}$/;
if (!patrn.exec(gotoval)){
alert("请输入非零的正整数!");
return false;
}
var intval = parseInt(gotoval);
if(intval > pagecount){
alert("您输入的页面超过总页数 "+pagecount);
return ;
}
buttonClickCallback(intval);
});
return $btngoto;
}
function renderButton(buttonLabel, pagenumber, pagecount, buttonClickCallback) {
var $Button = $('<li class="pgNext">' + buttonLabel + '</li>');
var destPage = 1;
switch (buttonLabel) {
case "首页":
destPage = 1;
break;
case "上一页":
destPage = pagenumber - 1;
break;
case "下一页":
destPage = pagenumber + 1;
break;
case "末页":
destPage = pagecount;
break;
}
if (buttonLabel == "首页" || buttonLabel == "上一页") {
pagenumber <= 1 ? $Button.addClass('pgEmpty') : $Button.click(function() { buttonClickCallback(destPage); });
}
else {
pagenumber >= pagecount ? $Button.addClass('pgEmpty') : $Button.click(function() { buttonClickCallback(destPage); });
}
return $Button;
}
$.fn.pager.defaults = {
pagenumber: 1,
pagecount: 1};
})(jQuery);
PagerDemo.js
$(document).ready(function() {
init(1);
});
//默认加载
function init(pagenumber){
//向服务器发送请求,查询满足条件的记录
//$.getJSON('',{},function(data){
//data 为返回json 对象 并包括(pagecount、totalcount)的key-value值;
var data = {'pagecount':15,'totalcount':150};
$("#pager").pager({ pagenumber: pagenumber, pagecount:data.pagecount,totalcount:data.totalcount, buttonClickCallback: PageClick});
//});
}
//回调函数
PageClick = function(pageclickednumber) {
init(pageclickednumber);
$("#result").html("Clicked Page " + pageclickednumber);
}
Pager.css
/* jquery.page.js css */
ul.pages {display:block;border:none;text-transform:uppercase;font-size:12px;margin:10px 0 50px;padding:0;}
ul.pages li {list-style:none;float:left;border:1px solid #b36d41;text-decoration:none;margin:0 5px 0 0;padding:5px;}
ul.pages li:hover {border:1px solid #afdfe4;background-color:#afdfe4;}
ul.pages li.pgEmpty {border:1px solid #f0f0f0;color:#d9d6c3;background-color:#f0f0f0;}
ul.pages li.thpoint {border:none;cursor:auto; color:#000;background-color:#fff;}
ul.pages li.pgCurrent {padding: 4px 4px;border: 3px double #fff; + border-color: #afdfe4;color:#FFF;font-weight:700;background-color:#afdfe4;}
PagerDemo.html
需要装载容器div
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery.pager.js Test</title>
<link href="Pager.css" rel="stylesheet" type="text/css" />
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="jquery.pager.js" type="text/javascript"></script>
<script src="PagerDemo.js" type="text/javascript"></script>
</head>
<body>
<h1 id="result">Click the pager below.</h1>
<div id="pager" ></div>
</body>
</html>
end...

- 大小: 3.2 KB
分享到:
相关推荐
"图片文件上传回显jQuery插件——插件四"正是针对这一需求设计的工具,它简化了开发者实现这一功能的复杂度,使得图片预览和上传变得更加便捷。 jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、...
在这个“jquery插件——多级菜单”项目中,我们可能看到以下关键技术点: 1. **CSS样式和布局**:多级菜单的呈现通常依赖于CSS来实现层次感。通过设置适当的`display`属性(如`none`和`block`),我们可以控制菜单...
**jQuery 插件——手风琴效果** 在Web开发中,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画制作等任务。手风琴效果是jQuery插件中常见的一种交互式UI设计,它允许用户通过点击展开或折叠...
这里我们关注的“jQuery插件——评分_ui_cookie_放大图”主题,涵盖了几个关键的知识点,包括jQuery插件开发、评分系统实现、用户界面(UI)设计、Cookie管理和图片预览功能。 首先,jQuery插件是jQuery生态系统中...
**jQuery 插件 Imgbox 知识点详解** 在网页设计和开发中,展示图片时,经常需要提供一种方式让用户可以放大查看细节。jQuery 插件 Imgbox 正是为了解决这一需求而诞生的。它允许用户点击缩略图,以弹出窗口的形式...
在这个场景中,"jquery插件-文章分页插件"是一个专门为jQuery设计的轻量级组件,用于实现文章或内容的分页功能。 首先,我们来详细了解一下jQuery插件的基本结构和工作原理。jQuery插件通常是一个函数,该函数接收...
jquery插件 提示框 用法: 注意:因为没有使用css文件,而且在jquery.tooltip.js里通过对象的形式定义css,所以使用时,需要修改jquery.tooltip.js里的图片路径。
此插件可将所给字符串进行处理,是该字符串能够在鼠标以上时跳动起来,是一种文字特效的插件
jquery pagination 分页组件 jquery pagination 分页组件 jquery pagination 分页组件 官网 https://pagination.js.org/index.html 文档 https://pagination.js.org/docs/index.html
`jqueryPage.js` 是一个基于 jQuery 的分页插件,用于帮助开发者轻松实现网页的分页功能。 `jqueryPage.js` 插件的使用首先需要引入 jQuery 库和该插件的脚本文件。在 HTML 页面中,通常将 jQuery 库放在 `<head>` ...
在实际操作中,首先要确保引入jQuery库,然后按照插件的文档说明正确引入并初始化分页插件,最后配置Ajax请求以获取和展示新的分页内容。 总的来说,"jquery插件无刷分页.rar"提供的资源为开发者提供了一种高效的无...
**jQuery分页插件详解** 在网页开发中,数据量庞大的时候,为了提高用户体验,通常会采用分页的方式来展示信息。jQuery插件是JavaScript库jQuery的扩展,它们为开发者提供了更多的功能和便利,分页插件就是其中之一...
此jQuery插件为Ajax分页插件,一次性加载,故分页切换时无刷新与延迟,如果数据量较大不建议用此方法,因为加载会比较慢。 原插件CSS不太合理,使用浮动,故无法方便实现左右方向的定位,且未清除浮动,在中文修改...
效果描述: 在网页中我们经常要用到拖拽效果,无论是pc客户端还是手机页面 今天再次给大家推荐一个非常好用的插件 ...保证页面引入jQuery以及本插件的基础上,然后将你需要拖动的div的class如此一下
jQuery是一款强大的JavaScript库,它简化了DOM操作、事件处理、动画制作等任务,同时也方便我们创建自定义插件,如分页组件。 在“jQuery实现分页组件”的主题中,我们将探讨以下关键知识点: 1. **jQuery基础**:...
**jQueryPager:基于JQuery的Ajax分页插件Pagination实现** 在Web开发中,当数据量庞大时,分页是一种常见的优化用户体验的方式。jQueryPager是一款轻量级的jQuery分页插件,它允许开发者通过Ajax无刷新的方式实现...
在Web开发中,数据量较大的页面往往需要实现分页功能,以便用户能够逐页浏览信息,而“水晶分页”(Crystal Pagination)是一款基于jQuery的轻量级分页插件,它提供了一种简单易用的方式来实现美观且高效的分页效果...
本篇文章将详细讲解如何使用jQuery分页插件来设置分页内容显示的数量。 首先,我们需要选择一个适合的jQuery分页插件。有许多开源的选项可供选择,例如jQuery Pagination Plugin、jQuery UI Paginator、Bootstrap-...
效果描述: 在网页中我们经常要用到拖拽效果,无论是pc客户端还是手机页面 今天再次给大家推荐一... 保证页面引入jQuery以及本插件的基础上,然后将你需要拖动的div的class如此一下 例如:$(".lanren").Tdrag();
二、jQuery表格分页插件 jQuery有多个插件用于实现表格分页,例如: 1. jQuery DataTables:这是一个强大的数据表插件,它提供了分页、排序、搜索和过滤等功能。DataTables支持自定义分页样式,同时提供了多种数据...