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") ...
随机推荐
- spring boot 日志介绍 以及 logback配置示例
https://www.cnblogs.com/flying607/p/7827460.html 以下是springboot的一个局部依赖关系: 可以看到,java util logging(jul) ...
- MANIPULATION
MANIPULATION Generalizations Congratulations! You learned how to use the command line to view and ma ...
- 如何学习DeepLearning
多年来,科学家们为了搞清楚神经网络的运行机制,进行了无数次实验.但关于神经网络的内在运行方式,目前还没有系统性的理论,没有具体的路线可以指引你获得更好的性能.简单地下载开源工具包直接使用并不能跑出很棒 ...
- 爬虫 1 requests 、beautifulsoup
1.requests 1.method 提交方式:post.get.put.delete.options.head.patch 2.url 访问地址 3.params 在url中传递的参数,GET p ...
- AD+DMA+USART实验中的收获和总结
由于实验室用的是USART3接口,但是在基地实验时,由于没有RS232,只能换到USART1,进行实验.(在交作业的时候,记得要再换回去) 在这个过程中,遇到困难,用串口软件发送数据时无响应,应该意味 ...
- MFC笔记3
1. C6有默认的提示代码功能,但是其默认的快捷键是Ctrl + Space,这一般情况下是切换输入法快捷键,所以,只需重新设置一下快捷键就可以实现提示代码功能,具体设置位置如下: 工具(T) -&g ...
- wiredtiger--初学数据恢复
启动mongodb是failed,日志如下 1.解压wirdtiger包 tar -vxf wiredtiger-3.1.0.tar.bz2 -C /home/wiredtiger/ 2.安装snap ...
- 深入理解Jvm 虚拟机
参考: 内存模型:https://blog.csdn.net/qq_34280276/article/details/52783096 类加载原理:https://nomico271.github.i ...
- C++11 constexpr常量表达式
常量表达式函数 要求: 函数体内只有单一的return返回语句 例如: constexpr int data() { const int i=1; //含有除了return以外的语句 return i ...
- Demo002 IDEA中Junit单元测试的使用(初级篇)
推荐JUnit视频教程:JUnit-Java单元测试必备工具. 1.基本理论 1.1 单元测试 单元测试又称模块测试,属于白盒测试,是最小单位的测试.模块分为程序模块和功能模块.功能模块指实现了一个完 ...