html 分页_JQuery堪称完美的分页函数

演示效果:

024d519640917c2de43894c0cb0cf005.png

html部分(引入jquery.js)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery简单的分页插件</title>
</head><link rel="stylesheet" href="css/pagination.css" /><script src="/uploads/allimg/200420/150KI242-1.jpg"></script>
<script src="js/pagination.js"></script><body>
<center>
<div class="box" id="wrap1"></div>
</center>
<script type="text/javascript">var onPagechange = function(page){console.log('当前点击页码',page);}var obj = {wrapid:'wrap1', //页面显示分页器容器idtotal:18891,//总条数pagesize:10,//每页显示10条currentPage:1,//当前页onPagechange:onPagechange,//btnCount:7 页数过多时,显示省略号的边界页码按钮数量,可省略,且值是大于5的奇数}pagination.init(obj);
</script></body>
</html>

css部分

.pagination-btn{padding: 0.06rem 0.10rem;margin-right: 4px;border-radius: 4px;border: 1px solid #ccc;cursor: pointer;color: #999;display: inline-block;box-sizing: border-box;width: 44px;text-align: center;
}
.pagination-wrap{position: relative;display: inline-block;padding-left: 0px;
}
.pagination-ellipsis{color: #999;position: relative;top: -5px;display: inline-block;padding: 0 0.12rem;margin-right: 4px;
}
.pagination-current{border:1px solid #3E8DDD;color:#3E8DDD;
}
.pagination-disabled{cursor: not-allowed;
}
#pagination-next,#pagination-prev{padding-right:0.08rem;padding-left:0.08rem;
}
.pagenum{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;vertical-align: middle;}

js部分

var pagination = pagination || {};
(function(){function Pagination(){}Pagination.prototype = {render: function(obj){/*显示分页器的容器元素id*/this._wrapid = '#'+obj.wrapid;this._total = obj.total;this._pagesize = obj.pagesize;this._currentPage = obj.currentPage;/*页码改变的回调函数*/this._cb = obj.onPagechange;/*设置页码超过多少个时,显示省略号*/if(obj.btnCount<5){obj.btnCount = 5;}else if(obj.btnCount%2==0){//非奇数obj.btnCount = obj.btnCount+1;}this._btnsValue = obj.btnCount?obj.btnCount:7;/*页码过多,左右都存在省略号时,当前点击页码左右两边的页码个数*/this._halfbtns = parseInt((this._btnsValue-3)/2);/*显示的总页面数*/this._btnNum = obj.total/obj.pagesize>parseInt(obj.total/obj.pagesize)?parseInt(obj.total/obj.pagesize)+1:parseInt(obj.total/obj.pagesize);   },bindEvent: function(){var that = this;/*页码点击*/$(that._wrapid).on('click','.pagenum',function(){that._currentPage = parseInt($(this).text());that._cb(that._currentPage);isshowMore.call(that);});/*上一页*/$(that._wrapid).on('click','#pagination-prev',function(){if($(this).hasClass('pagination-disabled')){return;}that._currentPage--;$('#pagination-next').hasClass('pagination-disabled')&&$('#pagination-next').removeClass('pagination-disabled');if(that._currentPage==1){$('#pagination-prev').addClass('pagination-disabled');}else{$('#pagination-prev').removeClass('pagination-disabled');}that._cb(that._currentPage);isshowMore.call(that);});/*下一页*/$(that._wrapid).on('click','#pagination-next',function(){if($(this).hasClass('pagination-disabled')){return;}that._currentPage++;$('#pagination-prev').hasClass('pagination-disabled')&&$('#pagination-prev').removeClass('pagination-disabled');if(that._currentPage==that._btnNum){$('#pagination-next').addClass('pagination-disabled');}else{$('#pagination-next').removeClass('pagination-disabled')}that._cb(that._currentPage);isshowMore.call(that);});isshowMore.call(this);/*判断省略符位置*/function isshowMore(){if(this._btnNum<=this._btnsValue){// console.log('不显示');creatBtns.call(this,'none')}else{if(this._currentPage<=(this._btnsValue-1-this._halfbtns)){//只显示后省略creatBtns.call(this,'after');}else if(this._currentPage>=this._btnNum-1-this._halfbtns){//只显示前省略creatBtns.call(this,'before')}else{//前后省略都显示creatBtns.call(this,'all')}}}/*创建页码按钮标签*/function creatBtns(ismorePosition){var html = '';var ismore = '...';var firstbtn = '1';var lastbtn = ''+this._btnNum+'';var prevbtn = '<';var nextbtn = '>'if(this._currentPage == 1){firstbtn = '1';prevbtn = '<'}if(this._currentPage == this._btnNum){lastbtn = ''+this._btnNum+'';nextbtn = '>'}if(ismorePosition == 'none'){for(var i = 1; i <= this._btnNum; i++){if(i == this._currentPage){html+= ''+i+'';}else{html += ''+i+'';}}}if(ismorePosition=="after"){// console.log('省略在后面');for(var i = 1; i <= this._btnsValue-1; i++){if(i == this._currentPage){html += ''+i+'';}else{html += ''+i+'';}}html = html + ismore + lastbtn;}if(ismorePosition=="before"){// console.log('省略在前面');html = html + firstbtn + ismore;for(var i=this._btnNum-(this._btnsValue-2);i<=this._btnNum;i++){if(i == this._currentPage){html+=''+i+'';}else{html+=''+i+'';}}}if(ismorePosition=="all"){// console.log('省略前后都有');var halfnum = parseInt((this._btnsValue-3)/2);html += firstbtn + ismore;for(var i = (this._currentPage-halfnum);i<=this._currentPage+halfnum+((this._btnsValue-3)%2);i++){if(i == this._currentPage){html += ''+i+''}else{html += ''+i+''}}html+=ismore+lastbtn;}$(this._wrapid).html(prevbtn+'
'+html+'
'+nextbtn);}},init:function(paginationObj){this.render(paginationObj);this.bindEvent();}}pagination.init = function(paginationObj){/*参数:wrapid,total,pagesize,currentPage,onPagechange[,btnCount]*/return new Pagination().init(paginationObj)}
})()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 8.0.12解压版安装教程_mysql 8.0.12 解压版安装教程

本文为大家分享了mysql 8.0.12 解压版安装教程&#xff0c;供大家参考&#xff0c;具体内容如下1、首先在官网上下载mysql8.0.12的压缩包&#xff1a;下载地址2、下载成功后解压到任意目录&#xff0c;比如我的是E:\download\mysql-8.0.12-winx64&#xff1b;3、配置环境变量&a…

简洁又快速地处理集合——Java8 Stream(下)

上一篇文章我讲解 Stream 流的基本原理&#xff0c;以及它与集合的区别关系&#xff0c;讲了那么多抽象的&#xff0c;本篇文章我们开始实战&#xff0c;讲解流的各个方法以及各种操作 没有看过上篇文章的可以先点击进去学习一下 简洁又快速地处理集合——Java8 Stream&#xf…

python入口函数的作用_python之函数中参数的作用域

学编程究竟学的是什么呢&#xff1f;在写文章的这几天也一直在思考这个问题——恐怕这也是接下来的几年一直会去思考的问题。这个问题的答案也会指导我的方法论&#xff0c;所以索性整顿一下。 现阶段我的回答是&#xff0c;发现需求&#xff0c;然后解决。 最大的需求无非是完…

idea lombok 离线安装_Lombok与IntelliJ IDEA干了一架,完胜

我相信前段时间&#xff0c;有更新IDEA到2020.2版本的同学&#xff0c;在安装Lombok的过程中&#xff0c;肯定遇到与Lombok无法兼容的问题&#xff0c;并且报错&#xff1a;Caused by: com.intellij.psi.PsiInvalidElementAccessException: Element: class de.plushnikov.intel…

jquery设置宽_JavaScript学习笔记(三十二) jQuery(中)

jQuery昨天讲了 jQuery 的基本选择器筛选器和属性操作今天来说一些 jQuery 别的东西元素操作创建一个元素var div $()内部插入元素// 向 div 元素中插入一个 p 元素&#xff0c;放在最后$(div).append($())// 把 p 元素插入到 div 中去&#xff0c;放在最后$(hello).appendTo(…

python自动化框架测试实操_自动化框架之 python+selenium+pytest

1.概述 selenium&#xff1a; 基于JavaScript代码库的自动化测试框架&#xff0c;通过脚本语言&#xff0c;模拟用户行为操作&#xff0c;最接近用户真实场景&#xff0c;实现对web自动测试。 Selenium&#xff0c;是目前的最火爆企业最主流的webUI自动化框架 pytest: pytest是…

mysql 关联查询慢_mysql慢查询语句分析总结

我们经常会接触到MySQL&#xff0c;也经常会遇到一些MySQL的性能问题。我们可以借助慢查询日志和explain命令初步分析出SQL语句存在的性能问题通过SHOW FULL PROCESSLIST查看问题SHOW FULL PROCESSLIST相当于select * from information_schema.processlist可以列出正在运行的连…

python opencv3 轮廓检测

git&#xff1a;https://github.com/linyi0604/Computer-Vision 1 # coding:utf82 3 import cv24 import numpy as np5 6 # 创建一个200*200 的黑色空白图像7 img np.zeros((200, 200), dtypenp.uint8)8 # 在图像的中央位置 放置一个100*100的白色方块9 img[50:150, 50: 150] …

CentOS7搭建NTP服务器

搭建ntp服务器 查看服务器、客户端操作系统版本 2查看服务器是否安装ntp 3如果没有安装 4安装完成后重新查看服务器是否安装ntp 5查看ntp服务器状态 6修改配置文件 注释 #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.p…

mysql 5.7.21-linux_MySQL 5.7.21 Linux平台安装 Part 2

从今天开始MySQL相关方面的东西今天是关于MySQL的安装系统为 redhat 6.10数据库为MySQL 5.7.21PS:目前最新版本为MySQL 5.7.251. 目录规划2. MySQL 5.7 下载目前MySQL 社区的GA 提供5 和8 的下载由于目前大多数系统用的还是5的版本这里统一使用5的版本注意&#xff0c;下面是按…

session很快失效_深夜,我偷听到程序员要对session下手...

我是一个web服务器我的工作是给人类提供上网服务&#xff0c;我每天要为数以万计的人提供网页浏览服务。已经是深夜了&#xff0c;我还在和手下几个兄弟为了一件事紧张讨论着。“老大&#xff0c;现在咱们每天处理的请求越来越多了&#xff0c;session同步的问题不能再拖了&…

centos7安装samba服务器

1查看是否安装samba服务 2如果为空则没有安装&#xff0c;安装显示安装完成即成功 3查看samba状态 4查看配置文件的位置 5配置文件备份&#xff0c;直接传输到本地备份 6修改配置文件 Path共享目录位置 Valid users 可以查看的用户 Browseable可以查看共享文件夹的目录&a…

微信小程序—day01

前言 听说谷歌准备回中国了&#xff0c;玩了一下谷歌刚入驻微信的小程序&#xff1a;“猜画小歌”&#xff0c;又一次见识到了ai的强大魅力。看来python之路&#xff0c;前途还是一片光明的。 因为18年初时的“跳一跳”&#xff0c;带火了微信小程序&#xff0c;一直想要写一个…

docker mysql 操作_[Docker] Docker 快速搭建本地MySQL开发环境

[Docker] Docker 快速搭建本地MySQL开发环境关于 Docker 的安装使用本文不再赘述&#xff0c;有兴趣的可以通过官网或是浏览我的专栏文章了解。今天着重给大家介绍下如何利用Docker快速搭建一个MySQL的环境&#xff0c;来协助本地开发。TOC手机用户请横屏获取最佳阅读体验&…

centos7安装DHCP服务器

1检查防火墙和selinux&#xff08;关闭&#xff09; 关闭防火墙和selinux&#xff0c;这边不多说 2检查DHCP状态 3安装DHCP软件包 4把系统默认的样例复制 5修改配置文件 option domain-name “example.org”; --DNS域名 option domain-name-servers ns1.example.org, ns2.…

python装饰器解析_Python 装饰器解析

一、装饰器定义&#xff1a;本质是函数&#xff0c;&#xff08;装饰其他函数&#xff09;就是为其他函数添加附加功能 二、装饰器的作用&#xff1a;在不改变原函数的情况下&#xff0c;为原函数前后添加新的功能 三、装饰器的原则&#xff1a; 1、不能修改被装饰的函数的源代…

centos7网卡识别不到,无法远程工具连接

这是在安装dhcp的时候遇到的问题&#xff0c;远程工具连接不上了。没IP地址没得玩 解决办法 直接在虚拟机打开终端&#xff0c;找到配置文件ifcfg-ens33 TYPE“Ethernet” PROXY_METHOD“none” BROWSER_ONLY“static”----原先的dhcp换成static BOOTPROTO“no” DEFROUTE“ye…

python爬虫脚本ie=utf-8_Python反爬虫伪装浏览器进行爬虫

对于爬虫中部分网站设置了请求次数过多后会封杀ip&#xff0c;现在模拟浏览器进行爬虫&#xff0c;也就是说让服务器认识到访问他的是真正的浏览器而不是机器操作 简单的直接添加请求头&#xff0c;将浏览器的信息在请求数据时传入&#xff1a; 打开浏览器--打开开发者模式--请…

centos7加入第二块网卡无法识别

本来是做DHCP服务加一块网卡的&#xff0c;然后识别不出来&#xff0c;没得玩 centos7加入第二块网卡无法识别 1发现只有一块网卡 2使用nmcli con show命令&#xff0c;查看网卡的UUID信息&#xff0c;记下UUID值 3启动networkManager’ 4识别 5使用ip addr命令查看网卡信息…

hbase 导入mysql_HBase导入SQL Server数据库数据

在先前的几篇随笔中已经介绍了Hadoop、Zookeeper、Hbase的分布式框架搭建方案&#xff0c;目前已经搭建完成了一个包含11个节点的分布式集群。而对于HBase数据库的使用仅限于测试性质的增删改查指令&#xff0c;为了进一步熟悉分布式框架的使用&#xff0c;本文介绍将已有的数据…