自定义Jquery分页插件
/**
* 功能说明:jPager 分页插件
* 参数说明:pages:[] 分页的控件个数 @id:显示分页的div ID,@showSelectPage: 是否显示当前分页的条目过滤下拉框
* @currentpage 当前第几页
* @pagesize type:number 每页显示多少条目
* @total type:number 总条数
* @totalpage type:number 总页码数
* */ (function ($) {
'use strict'; $.jPager = function (option) { if (!option || option.totalpage == 0) { for (var i = 0; i < option.pages.length; i++){
$('#'+ option.pages[i].id).empty();
}
return;
} var limitNumber = [20, 30, 50]; var defaultOption = {
pages: [{
id: '',
showSelectPage: true
}],
currentpage: 1, //当前页
pagesize: 20, //一页显示数量
total:1, //条数
totalpage: 1 //总页码
}; var pageObj = $.extend(defaultOption, option); if (pageObj.pages.length == 0) {
return;
} for (var i = 0; i < pageObj.pages.length; i++) {
var obj = pageObj.pages[i];
var _btnId = obj.id;
var _isShowSelect = obj.showSelectPage;
var tpl = '<div class="right"><span class="pager">';
if (_isShowSelect) {
tpl += '<span class="count" date-val="'+ pageObj.pagesize +'">'+ pageObj.pagesize +'</span>';
tpl += '<span class="pageCount">';
tpl += '<dl><dt class="open-dt" role-page="role-page" data-val="'+ pageObj.pagesize +'">';
tpl += '<i class="icon-yt-menu-list"></i></dt>';
tpl += '<dd style="display:none" data-val="'+limitNumber[0]+'">'+limitNumber[0]+' <i class="fa fa-check hide"></i></dd>';
tpl += '<dd style="display:none" data-val="'+limitNumber[1]+'">'+limitNumber[1]+' <i class="fa fa-check hide"></i></dd>';
tpl += '<dd style="display:none" data-val="'+limitNumber[2]+'">'+limitNumber[2]+' <i class="fa fa-check hide"></i></dd>';
tpl += '</dl></span>';
} tpl += '<span class="firstPage hide"><i class="fa fa-angle-double-left"></i></span><span class="pageContainer">'; var _pages = [];
if (pageObj.totalpage > 5) { if (pageObj.currentpage <= 3) {
_pages = [1, 2, 3, 4, 5];
} else if (pageObj.currentpage > 3 && (pageObj.totalpage - pageObj.currentpage >= 2)){
_pages[0] = pageObj.currentpage - 2;
_pages[1] = pageObj.currentpage - 1;
_pages[2] = pageObj.currentpage;
_pages[3] = pageObj.currentpage + 1;
_pages[4] = pageObj.currentpage + 2;
}else if (pageObj.currentpage > 3 && (pageObj.totalpage - pageObj.currentpage == 0)){
_pages[0] = pageObj.currentpage - 4;
_pages[1] = pageObj.currentpage - 3;
_pages[2] = pageObj.currentpage - 2;
_pages[3] = pageObj.currentpage - 1;
_pages[4] = pageObj.currentpage;
}else if (pageObj.currentpage > 3 && (pageObj.totalpage - pageObj.currentpage == 1)) {
_pages[0] = pageObj.currentpage - 3;
_pages[1] = pageObj.currentpage - 2;
_pages[2] = pageObj.currentpage - 1;
_pages[3] = pageObj.currentpage;
_pages[4] = pageObj.currentpage + 1;
} } else {
for (var j = 0; j < pageObj.totalpage; j++ ) {
_pages[j] = j + 1;
}
} for (var k = 0; k < _pages.length; k++ ) {
tpl += '<span class="page" data-page="page'+ _pages[k] +'">'+ _pages[k] +'</span>';
} tpl += '</span><span class="lastPage hide"><i class="fa fa-angle-double-right"></i></span></span></div>'; var _totalTpl = '<div class="pull-left">'+ pageObj.total +' <span>条数据</span></div>';
if (obj.showTotal) {
tpl = _totalTpl + tpl;
}
$('#'+_btnId).html(tpl); //设置上一页 、下一页 是否可见
if (pageObj.currentpage == 1) {
if (pageObj.totalpage >1) {
$('.lastPage').removeClass('hide');
}
}else if (pageObj.currentpage > 1) {
if (pageObj.currentpage == pageObj.totalpage) {
$('.firstPage').removeClass('hide');
}else{
$('.firstPage').removeClass('hide');
$('.lastPage').removeClass('hide');
}
} //点击页码数量
$('.pageCount dd').click(function () { var _hasClass = $(this).children('i').hasClass('hide');
if (!_hasClass) {
return;
} var _text = $(this).text();
var _val = $(this).attr('data-val');
$('.pager .count').text(_text);
$(this).siblings('dd').children('i').addClass('hide');
$(this).children('i').removeClass('hide');
if($('#limit')){
$('#ipt_limit').val(_text);
} var page = {
limit: $('.pager .count:eq(0)').text().trim(),
page: 1
} $('.pageCount dd').slideUp(10, function () {
$(this).siblings('dt').attr('style', '').attr('data-val', _val);
$(this).siblings('dd').children('i').addClass('hide');
});
obj.callback(page);
}); //点击页码
$('span[data-page]').click(function () {
var _hasClass = $(this).hasClass('active'); if (_hasClass) {
return;
} var _page = $(this).attr('data-page');
$('span[data-page]').removeClass('active');
//$(this).addClass('active');
$('span[data-page="'+ _page +'"]').addClass('active');
if($('#ipt_page')){
$('#ipt_page').val(_page);
} var page = {
page: $('.pager:eq(0) .active').text().trim(),
limit: $('.pager .count:eq(0)').text().trim()
}
obj.callback(page);
}); //点击上一页
$('#'+_btnId +' span .firstPage i').bind('click', function () {
var currentPage = parseInt($('.pager:eq(0) .active').text().trim());
if (currentPage == 1) {
$('.firstPage').addClass('hide');
return;
}
var page = {
page: 1,
limit: $('.pager .count:eq(0)').text().trim()
}
obj.callback(page);
}); //点击下一页
$('#'+_btnId +' span .lastPage i').click(function () {
var currentPage = parseInt($('.pager:eq(0) .active').text().trim());
if (currentPage == pageObj.totalpage) {
$('.lastPage').addClass('hide');
return;
}
var page = {
page: pageObj.totalpage,
limit: $('.pager .count:eq(0)').text().trim()
}
obj.callback(page);
});
} //初始化,选中当前页码
$('span[data-page]').removeClass('active');
$('span[data-page="page'+ pageObj.currentpage +'"]').addClass('active'); /* 切换每页条数 */
$('.pageCount dt').click(function() { var _val = $(this).attr('data-val');
$(this).siblings('dd[data-val="'+_val+'"]').children('i').removeClass('hide'); $('dd').slideUp(10, function() {
$('.select-has-border').removeClass('select-has-border-open').children('dd').css('display', 'none');
$('.campaign-query').css('border-radius', '5px');
$('.cp-select').removeClass('cp_select_open');
});
var _isShow = $(this).siblings('dd').css('display') == 'none' ? false : true;
if (_isShow) {
$(this).siblings('dd').hide();//.removeClass('page-Open').addClass('page-Close')
var _css = {
'borderTop': '0px solid #ccc',
'border-top-right-radius': '0px',
'border-top-left-radius': '0px',
'backgroundColor': 'white',
'color': ''
};
$(this).css(_css);
} else {
$(this).siblings('dd').slideDown(10);//.removeClass('page-Close').addClass('page-Open')
var _css = {
'border-top-right-radius': '5px',
'border-top-left-radius': '5px',
'backgroundColor': '#414C59',
'color': 'white'
};
$(this).css(_css);
}
}); };
})(jQuery);
样式:
/* 分页 */
.pager{
height: 30px;
line-height: 30px;
padding:;
margin-top:;
margin-left: 70px;
display: inline-block;
} .pager{
float:left;
} .pager .pageCount{
float:left;
width:60px;
height:;
line-height: 30px;
text-align: left;
margin-left: -5px;
text-indent: 5px;
} .pager .count{
padding-top:3px;
float:left;
cursor:default;
} .pager .pageCount dl{
margin:;
padding:;
width: 60px;
} .pager .pageCount dt>i:first-child{
vertical-align:bottom;
margin-top: 3px;
} .pager .pageCount dd{
background-color: #414C59;
height: 24px;
width:60px;
line-height: 24px;
text-align: left;
text-indent: 5px;
color: white;
border:none;
} .pager .pageCount dd:last-child{
border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
} .pager .pageCount dd:hover{
background-color: #333E4D;
} .pager dt:hover{
color:#2AC3FA;
} .pager .firstPage{
margin-left: 20px;
} .pager .firstPage>i{
margin-top: 5px;
} .pager .page{
margin-left: 5px;
} .pager .lastPage{
margin-left: 10px;
} .pager .lastPage>i{
margin-top: 5px;
} .pager i.little{
font-size:10px;
vertical-align: top;
margin-top: 5px;
margin-left: 2px
} .pager span{
cursor: pointer;
border:1px solid transparent;
} .pager .page{
padding-left: 3px;
padding-right: 5px;
padding-top: 2px;
padding-bottom: 2px;
border-radius: 5px;
} .pager span.active{
background-color: #2AC3FA;
color:white;
padding-left: 5px;
padding-right: 5px;
padding-top: 1px;
padding-bottom: 2px;
border-radius: 5px;
} .pager span.page:hover{
background-color: white;
border:1px solid #2AC3FA;
color:#2AC3FA;
} .pager .lastPage:hover, .pager .firstPage:hover{
color:#2AC3FA;
} .pager .open{
color:#ffffff;
background-color: #414C59;
} .pager span{
display:inline-block;
height: 24px;
line-height: 20px;
margin-left: 2px;
float: left;
} .pager .pageContainer{
display: inline-block;
min-width: 26px;
width: auto;
height: 30px;
line-height: 30px;
overflow:hidden;
}
调用:
//分页控件
var option = {
pages: [{
id: 'pager_head',
showSelectPage: true,
callback: function (option) {
//点击页码回调函数
goPage(option);
}
},{
id: 'pager_footer',
showSelectPage: false,
showTotal: true,
callback: function (option) {
//点击页码回调函数
goPage(option);
}
}],
pagesize: data.pagesize,
total: data.total,
currentpage: data.currentpage,
totalpage: data.totalpage
};
$.jPager(option);
效果:


自定义Jquery分页插件的更多相关文章
- jQuery 分页插件 jqPagination的使用
jqPagination 是一个简单易用的轻量级 jQuery分页插件,其使用了 HTML5 和 CSS3 技术来实现.此插件提供了几个参数设置选项,通过简单的配置即可生成分页控件.此外,它的外观样式 ...
- Jquery 分页插件 Jquery Pagination
Jquery 分页插件 Jquery Pagination 分页插件来说,我觉得适用就行,尽量简单然后能够根据不同的应用场景能够换肤.展现形式等. 对于初学者想写分页插件的同学,也可以看下源码,代码也 ...
- 20个jQuery分页插件和教程
1.客户端的jQuery 分页插件jPages jPages 是一个客户端的分页插件,但提供很多特性例如自动翻页.键盘和滚动浏览,延迟显示以及完全可定制的导航面板. Read More Demo 2. ...
- 一个强大的jquery分页插件
点击这里查看效果 这个分页插件使用方便,引用keleyidivpager.js和keleyidivpager.css文件,然后在htm(或者php,aspx,jsp等)页面中对分页总数,参数名,前缀后 ...
- 21个很棒的jQuery分页插件下载
分页是指将一个大内容划分为各种不同的页面,因此网站的分页是一个很重要的部分,必须让内容有组织性和易于访问.分页有各两种不同的方式,手动跟自动.最受欢迎简单和广泛的方法是jQuery插件.下面我们收集了 ...
- jquery分页插件的修改
前言 最近分页功能使用的比较多,所以从网上下载个jquery分页插件来使用, 之前用的都挺好的,直到昨天出现了逻辑问题,反复查看自己的代码,最后发现是点击页码后执行了多个点击事件.最后只有自己查看源码 ...
- jQuery分页插件(jquery.page.js)的使用
效果描述: 不用分页即可显示的jQuery插件 jQuery分页插件——jQuery.page.js用法很简单,效果很棒 1.前端 首先html的head中引入相关css与js <lin ...
- 分享一个Jquery 分页插件 Jquery Pagination
分页插件来说,我觉得适用就行,尽量简单然后能够根据不同的应用场景能够换肤.展现形式等. 对于初学者想写分页插件的同学,也可以看下源码,代码也挺简单明了的,也助于自己写个小插件. 不过我比较懒,一般直接 ...
- JQuery分页插件封装(源码来自百度,自己封装)
最近由于项目的需要,做了一个基于JQuery的表格分页插件封装,部分源码来源百度,经由自己封装完成. 下面是具体代码和说明,仅供参考.第一步可以先将我的HTML,CSS,JS这三部分的代码创建好后先运 ...
随机推荐
- 「LuoguP1122」 最大子树和
Description 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题.一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题.于是 ...
- unity aSSETBUNDEL (转)
无论是模型资源还是UI资源,最好是先把他们放在Prefab中,然后在做成Assetbundle.我们以模型来举例,Assetbundle中可以放一个模型.也可以放多个模型,它是非常灵活了那么最需要考虑 ...
- Centos7 编译安装 Nginx、MariaDB、PHP
前言 本文主要大致介绍CentOS 7下编译安装Nginx.MariaDB.PHP.面向有Linux基础且爱好钻研的朋友.技艺不精,疏漏再所难免,还望指正. 环境简介: 系统: CentOS 7,最小 ...
- linux-3.0内核移植到fl2440开发板(以s3c2410为模板)
1.新建kernel文件夹,用于存放内核文件 [weishusheng@localhost ~]$ mkdir kernel 2.进入kernel,上传压并解压压缩文件 [weishusheng@lo ...
- bzoj3302
树形dp 很明显我们可以枚举一条边,然后求两边的重心,这样是暴力,我们用一些奇怪的方法来优化这个找重心的过程,我们先预处理出来每个点最大和第二的儿子,然后每次把断掉的子树的贡献减掉,每次找重心就是向最 ...
- C++实现利用(前序和中序生成二叉树)以及(二叉树的镜像)
#include<iostream> #include<string.h> #include<stack> using namespace std; typedef ...
- 6-5 Haar特征2
在遍历的过程中还需要考虑到一个步长的问题.这个模板一次滑动10个像素,那么总共就需要滑动9次.再加上最开始的第0次,合计在水平方向上和竖直方向上分别都有10个这样的模板,总共也就是100个模板.要计算 ...
- java web url编码解码问题(下载中文名文件)
问题描述:需要url直接访问中文名的文件,类似于在地址栏里直接输入http://localhost:8080/example/丽江旅游攻略.doc 来进行文件下载,tomcat的server.xml文 ...
- linux的僵尸进程和孤儿进程
1 僵尸进程: 子进程已经退出勒 但是还没有回收资源的进程为僵尸进程 代码验证 #include <stdio.h> #include <stdlib.h> #include ...
- hdoj2795【未完待续】
题意: 给你一个矩形h*w(h,w都是1e9),然后给你n个询问,每个询问带一个1*wi矩形,问你这个给定矩形能放在第几行(从1-h下来).如果最终放不下了,就输出-1. 比如案例: 3 5 5 2 ...