JavaScript控制页码的显示与隐藏
前端页面开发分页显示功能时,一般都要求使用自定义的页码样式,直接用网上分页插件就比较麻烦了,这里记录一下工作中总结的一个比较简单通用的控制页码显示与隐藏的的js代码。
首先是使用时需要自己根据自己具体页面内容修改的代码:
//这里是需要修改的,换成自己页面的样式和id就行,还有查询方法也需要自己进行具体修改
var _page_pre = '<a href="javascript:searchData(PagePre);" class="go-page"><上一页</a>';//"上一页"的html
var _page_check = '<a href="javascript:void(0);" class="n check" >PageNow</a>';//"选中页码"的html
var _page_middle = '<a href="javascript:searchData(pageNum);" class="n" >pageNum</a>';//"普通页码"的html
var _page_next = '<a href="javascript:searchData(PageNext);" class="go-page"">下一页></a>';//"下一页"的html
var _page_id = "pagelist";//显示页码的容器的id
var sideNum = 4;//选中页两侧普通页的数量,可以自己定义 /**
* ajax查询数据
*/
function searchData(pageNow){
$.ajax({
type: "POST",
url: "",
data: "pageNum="+pageNow,//pageNow是必须的,其他参数根据自己需要可以再加,
dataType:"json",
success: function(json){
if(json.status == "ok"){
//省略了datalist_html的拼接
$("#datalist").html(datalist_html);//查询到当前页的具体数据,拼接好添加到页面里面
var total = json.pageTotal;//查询到的总页数
showPage(total,pageNow);//这里调用控制页码显示的方法
}
}
});
}
接下来才是通用的js代码,不需要做任何修改。
这里只实现了单纯页码的显示功能,“显示总页数”,“跳页”,“首页”,“最后一页”功能比较简单,自己根据下面的代码可以很容易加上的。
/**
* 控制页码显示
* @param pageCount 总页数
* @param pageNum 当前页
* @return
*/
function showPage(pageCount,pageNum){
var startNum = 0;
var endNum = 0;
//获取显示页码的起始值
if(pageNum<=sideNum){
startNum = 1;
}else{
if((pageNum+sideNum)>=pageCount){
if((2*sideNum+1)>=pageCount){
if((pageCount - 2*sideNum)>=1){
startNum = pageCount - 2*sideNum;
}else{
startNum = 1;
}
}else{
startNum = pageCount - 2*sideNum;
}
}else{
if((pageNum-sideNum)>=1){
startNum = pageNum - sideNum;
}else{
startNum = 1;
}
}
}
//获取显示页码的结束值
if(pageCount<=sideNum){
endNum = pageCount;
}else{
if((sideNum+pageNum)>=pageCount){
endNum = pageCount;
}else{
endNum = sideNum+pageNum;
if((sideNum+pageNum)<=(2*sideNum+1)){
if((2*sideNum+1)>=pageCount){
endNum = pageCount;
}else{
endNum = 2*sideNum+1;
}
}else{
endNum = sideNum + pageNum;
}
}
}
//生成页码html
var pageHtml = '';
if(pageNum > 1){//对“上一页”按钮的控制,这里可以根据自己需要选择隐藏还是置灰
pageHtml += _page_pre.replace(/PagePre/g, pageNum-1);
}
for (var i=startNum; i<=endNum; i++) {//控制中间页码
if(i==pageNum){
pageHtml += _page_check.replace(/PageNow/g, i);
}else{
pageHtml += _page_middle.replace(/pageNum/g, i);
}
}
if(pageNum<pageCount){//对“下一页”按钮的控制,这里可以根据自己需要选择隐藏还是置灰
pageHtml += _page_next.replace(/PageNext/g, pageNum+1);
}
//将拼好的页码html添加到页面上
$("#"+_page_id).html(pageHtml);
}
下面是实现效果:





JavaScript控制页码的显示与隐藏的更多相关文章
- jquery控制css的display(控制元素的显示与隐藏)
使用jquery控制div的显示与隐藏: $("#div的id").show()表示display:block, $("#div的id").hide()表示di ...
- jquery控制元素的显示与隐藏
比如要控制div的显示与隐藏,一句话就搞定了.$("#id").show()表示display:block,$("#id").hide()表示display:n ...
- css3-10 如何控制元素的显示和隐藏(display和visibility的区别是什么)
css3-10 如何控制元素的显示和隐藏(display和visibility的区别是什么) 一.总结 一句话总结:使用的时候直接在元素的样式中设置display和visibility属性即可.推荐使 ...
- swift 如何控制view的显示与隐藏
swift 如何控制view的显示与隐藏 UIView有一个属性 hidden let line: UILabel = UILabel() 默认是显示的 需要显示它的时候:line.hidden = ...
- 微信小程序点击控制元素的显示与隐藏
微信小程序点击控制元素的显示与隐藏 首先我们先来看一下单个点击效果 我们来看一下wxml中的代码: <view class="conten"> <view cla ...
- 原生JS的移入溢出控制div的显示与隐藏
原生JS的移入溢出控制div的显示与隐藏的写法 上面的写法火狐存在兼容性
- 简简单单,jquery中,使用checkbox控制div的显示与隐藏
今天开发代码时,发现好久不用jquery就生疏了. 所以作这个记录, 使用checkbox控制div的显示与隐藏. 一,html代码处: <input type="checkbox&q ...
- legend3---19、要更多的从服务器端控制元素的显示和隐藏,而不要是页面端
legend3---19.要更多的从服务器端控制元素的显示和隐藏,而不要是页面端 一.总结 一句话总结: 这样可以控制很多页面端的非法操作 1.html标签中data方式的数据,修改之后在标签上只显示 ...
- jQuery判断当前元素显示状态并控制元素的显示与隐藏
1.jQuery判断一个元素当前状态是显示还是隐藏 $("#id").is(':visible'); //true为显示,false为隐藏 $("#id") ...
随机推荐
- MANIPULATION
MANIPULATION Generalizations Congratulations! You learned how to use the command line to view and ma ...
- SpringBoot +Pom.xml工程资源文件配置
继承spring-boot-starter-parent 要成为一个spring boot项目,首先就必须在pom.xml中继承spring-boot-starter-parent,同时指定其版本 & ...
- 云笔记项目-网页端debug功能学习
在做云笔记项目的过程中,除了服务端在eclipse中debug调试代码外,有时候需要在浏览器端也需要进行debug调试,刘老师举了一个冒泡排序算法的dubug例子,进行了讲解. 首先上浏览器端测试代码 ...
- mysql_day01
1.MySQL概述 1.什么是数据库 数据库是一个存储数据的仓库 2.都有哪些公司在用数据库 金融机构.游戏网站.购物网站.论坛网站 ... ... 3.提供数据库服务的软件 1.软件分类 MySQL ...
- 【VBA】ExcelファイルのOpen
※変数の定義を強制する方法: 一番上に.「Option Explicit」を追加して.変数の定義が必須となる. ソース Private Sub CommandButton2_Click() //スクリ ...
- Linux 禁止普通用户su到root
Linux账户权限管理上为了防止普通用户通过su切换到root用户,需要修改/etc/pam.d/su和/etc/login.defs两个配置文件. Step1:修改 /etc/pam.d/su文件 ...
- python 函数编程
def test1(): print('in the test1') def test2(): print('in the test2') return 1 def test3(): print('i ...
- 解决find命令报错: paths must precede expression(转)
原文地址:https://www.cnblogs.com/peter1994/p/7297656.html 在一天早上,想在服务器 /tmp 目录清除一些pdf文件,大概一万多个文件,在执行命令的时候 ...
- AutoCAD开发2--添加带属性的点
Private Sub CommandButton11_Click() Dim pPoint As AcadPoint Dim DataType(0 To 1) As Integer Dim Data ...
- java多线程系列10 阻塞队列模拟
接下来的几篇博客会介绍下juc包下的相关数据结构 包含queue,list,map等 这篇文章主要模拟下阻塞队列. 下面是代码 import java.util.LinkedList; import ...