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") ...
随机推荐
- [C语言]进阶|指针与字符串
------------------------------------------------------------------------------------ 回顾:[C语言]指针与字符串 ...
- [Ting's笔记Day8]活用套件carrierwave gem:(3)Deploy图片上传功能到Heroku网站
前情提要: 身为Ruby新手村民,创造稳定且持续的学习步调很重要,我用的方法就是一周在IT邦写三篇笔记,希望藉由把笔记和遇到的bug记录下来的过程,能帮助到未来想用Ruby on Rails架站的新手 ...
- mallo
http://luleimi.blog.163.com/blog/static/175219645201302295042968/
- 原生js实现Base64编码解码
注:ie10+ var str = window.btoa("liusong"); console.log(str); var s = window.atob("bGl1 ...
- 根据文件夹更改样本文件名小程序.py
#按照文件名设置标签并将其插入文件名中import osimport shutil#获取目标文件夹的路径a= r'C:\Users\yy\Desktop\tianchi大赛\guangdong_rou ...
- vue.js核心最基本的功能
Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统: , text: , text: , text: '随便其它什么人吃的东西' } ] }}) 蔬菜 奶酪 随便其 ...
- m3u8文件什么合成便于播放的MP4的方法
先大家要知道M3U8文件不是一个视频文件,里面全是一些路径,说白了就是一个目录而已,所以要看视频,要找到对应存放视频的文件夹.如果不知道怎么找,可以使用文本格式打开M3U8文件,里面会有路径提示. ...
- python list初始化技巧
一维列表 # 初始化递增的list,与L = [i for i in range(10)] 效果相同 L = range(10) # print(L) # [0,1,2,3,4,5,6,7,8,9] ...
- mysql之my.cnf详解
以下是 my.cnf 配置文件参数解释: #*** client options 相关选项 ***# #以下选项会被MySQL客户端应用读取.注意只有MySQL附带的客户端应用程序保证可以读取这段内容 ...
- Head First Servlets & JSP 学习笔记 第十三章 —— 过滤器的威力
过滤器可能是最强大的Web应用开发工具了! 与Servlet非常类似,过滤器就是Java组件,请求发送到Servlet之前,可以用过滤器截获和处理请求:另外Servlet结束工作之后,但在响应发回给客 ...