一个js分页及样式
2019-02-21 本文已影响0人
我的楼兰0909
$(function(){
//根据总页数判断,如果小于5页,则显示所有页数,如果大于5页,则显示5页。根据当前点击的页数生成
//每页显示的数目
var show_per_page = 10;
//获取content对象里面,数据的数量
var number_of_items = $('.total_num').val();
//计算页面显示的总页数
var pageCount = Math.ceil(number_of_items/show_per_page);
//隐藏该对象下面的所有子元素
$('.airfly_list').children().css('display', 'none');
//显示第n(show_per_page)元素
$('.airfly_list').children().slice(0, show_per_page).css('display', 'block');
//隐藏域默认值
$('#start_page').val(0);
$('#current_page').val(0);
$('#show_per_page').val(show_per_page);
$('#end_page').val(pageCount);
//生成分页按钮
if(pageCount>5){
page_icon(1,5,0);
}else{
page_icon(1,pageCount,0);
}
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
//点击分页按钮触发
$("#pageGro li").live("click",function(){
var curPage = parseInt($(this).html());//获取当前页数
var pageNum = parseInt($(this).html())-1;//获取当前页数
var page = pageNum +1;//跳转页码数
var show_per_page = parseInt($('#show_per_page').val());
if(pageCount > 5){
//显示页面
pageGroup(page,pageCount);
}else{
$(this).addClass("on");
$(this).siblings("li").removeClass("on");
}
//请求酒店数据,渲染酒店列表
setHotelList(curPage);
});
//点击上一页触发
$("#pageGro .pageUp").click(function(){
var pageNum = parseInt($("#pageGro li.on").html());//获取当前页
if (pageNum <= 1) {
var page = pageNum;
}else{
var page = pageNum-1;
}
if(pageCount > 5){
pageUp(pageNum,pageCount);
}else{
var index = $("#pageGro ul li.on").index();//获取当前页
if(index > 0){
$("#pageGro li").removeClass("on");//清除所有选中
$("#pageGro ul li").eq(index-1).addClass("on");//选中上一页
}
}
//请求酒店数据,渲染酒店列表
setHotelList(page);
});
//点击下一页触发
$("#pageGro .pageDown").click(function(){
var pageNum = parseInt($("#pageGro li.on").html());//获取当前页
var page = pageNum;
if (pageNum===pageCount) {
page = pageCount;
}else{
page = pageNum+1;
}
if(pageCount > 5){
pageDown(pageNum,pageCount);
}else{
var index = $("#pageGro ul li.on").index();//获取当前页
if(index+1 < pageCount){
$("#pageGro li").removeClass("on");//清除所有选中
$("#pageGro ul li").eq(index+1).addClass("on");//选中上一页
}
}
//请求酒店数据,渲染酒店列表
setHotelList(page);
});
//点击首页
$("#pageGro .pagestart").live("click",function(){
var page = $('#start_page').val();
if (pageCount > 5) {
//显示页码
pageGroup(1,pageCount);
}else{
var index = $("#pageGro ul li.on").index();//获取当前页
if(index < pageCount){
$("#pageGro li").removeClass("on");//清除所有选中
$("#pageGro ul li:first").addClass("on");
}
}
//请求酒店数据,渲染酒店列表
setHotelList(page);
});
//点击尾页
$("#pageGro .pageend").live("click",function(){
var pageNum1 = $('#end_page').val();
var pagenum = pageNum1-2
var page = pageNum1;
if (pageCount > 5) {
//显示页码
pageGroup(pagenum,pageNum1);
$("#pageGro ul li:last-child").addClass("on").siblings().removeClass("on");
}else{
var index = $("#pageGro ul li.on").index();//获取当前页
if(index < pageCount){
$("#pageGro li").removeClass("on");//清除所有选中
$("#pageGro ul li:last-child").addClass("on");
}
}
setHotelList(page);
});
});
//点击跳转页面
function pageGroup(pageNum,pageCount){
switch(pageNum){
case 1:
page_icon(1,5,0);
break;
case 2:
page_icon(1,5,1);
break;
case pageCount-1:
page_icon(pageCount-4,pageCount,3);
break;
case pageCount:
page_icon(pageCount-4,pageCount,4);
break;
default:
page_icon(pageNum-2,pageNum+2,2);
break;
}
}
//根据当前选中页生成页面点击按钮
function page_icon(page,count,eq){
var ul_html = "";
for(var i=page; i<=count; i++){
ul_html += "<li>"+i+"</li>";
}
$("#pageGro ul").html(ul_html);
$("#pageGro ul li").eq(eq).addClass("on");
}
//上一页
function pageUp(pageNum,pageCount){
switch(pageNum){
case 1:
break;
case 2:
page_icon(1,5,0);
break;
case pageCount-1:
page_icon(pageCount-4,pageCount,2);
break;
case pageCount:
page_icon(pageCount-4,pageCount,3);
break;
default:
page_icon(pageNum-2,pageNum+2,1);
break;
}
}
//下一页
function pageDown(pageNum,pageCount){
switch(pageNum){
case 1:
page_icon(1,5,1);
break;
case 2:
page_icon(1,5,2);
break;
case pageCount-1:
page_icon(pageCount-4,pageCount,4);
break;
case pageCount:
break;
default:
page_icon(pageNum-2,pageNum+2,3);
break;
}
}
//请求酒店数据
function setHotelList(page) {
if(page == 0){
page = 1;
}
var frmdata = $("#search_data").serializeObject();
var city_id = $('.city_id').val();
frmdata.page = page;
frmdata.city_id = city_id;
var json = getPostData();
$.extend(frmdata,json);
$('#current_page').val(page);
// console.log(frmdata);
// return false;
$.post(SITEURL+'rummery/search_ajax', frmdata, function (data) {
//console.log(data);
var list = data.hotel_list.HotelList;
var html = '';
for(i in list){
html += '<tr>'+
'<td class="hotel_search_hotel_pic " style="padding-left: 20px;padding-top: 20px;">';
if(list[i]['img_list'].length === 0){
html += '<img style="width: 180px;height: 120px" src="/res/images/hotel/hos_13.png" alt="hotel"/>';
}else{
html += '<img style="width: 180px;height: 120px" src="'+list[i]['img_list'][0]['ImgURL']+'" alt="hotel"/>';
}
html += '</td>'+
'<td class="hotel_search_hotel_content">'+
'<span class="content_num">'+list[i]['k']+'</span>'+
'<span class="content_title">'+list[i]['name_chn']+'</span><br>'+
'<span class="content_add">'+list[i]['address']+'</span>'+
'<span class="content_map">【查看地图】</span><br><br>'+
'<span class="content_score">”交通还是很方便的,离各个区都近“</span>'+
'</td>'+
'<td class="hotel_search_hotel_score">'+
'<span class="score_title">'+list[i]['comment_score']+'</span>'+
'<span class="score_tile2">/100分</span><br>'+
'<span class="score_txt">'+list[i]['comment_count']+'条用户点评</span>'+
'</td>'+
'<td class="hotel_search_hotel_price">'+
'<span class="price_title1">¥</span>'+
'<span class="price_title2">'+list[i]['ReferenceAmount']+'</span>'+
'<span class="price_title3">起</span><br>'+
'<span class="price_btn">查看详情</span>'+
'</td>'+
'</tr>';
}
$('#hotel_list_fly').html(html);
$('.total_night').text(data.total_night);
$('.total_num').val(data.total);
$('.hlist').text(data.hlist);
var show_per_page = 10;
var pageCount = Math.ceil(data.total/show_per_page);
//生成分页按钮
if(pageCount>5){
page_icon(1,5,0);
}else{
page_icon(1,pageCount,0);
}
setMap(map);
$('html,body').animate({scrollTop: '400px'}, 800);
},'json');
}
$(function(){
//根据总页数判断,如果小于5页,则显示所有页数,如果大于5页,则显示5页。根据当前点击的页数生成
//每页显示的数目
var show_per_page = 10;
//获取content对象里面,数据的数量
var number_of_items = $('.airfly_list').children().size();
//计算页面显示的总页数
var pageCount = Math.ceil(number_of_items/show_per_page);
//隐藏该对象下面的所有子元素
$('.airfly_list').children().css('display', 'none');
//显示第n(show_per_page)元素
$('.airfly_list').children().slice(0, show_per_page).css('display', 'block');
//隐藏域默认值
$('#start_page').val(0);
$('#current_page').val(0);
$('#show_per_page').val(show_per_page);
$('#end_page').val(pageCount);
//生成分页按钮
if(pageCount>5){
page_icon(1,5,0);
}else{
page_icon(1,pageCount,0);
}
//点击分页按钮触发
$("#pageGro li").live("click",function(){
var pageNum = parseInt($(this).html())-1;//获取当前页数
var page = pageNum +1;//跳转页码数
var show_per_page = parseInt($('#show_per_page').val());
//开始
start_from = pageNum * show_per_page;
//结束
end_on = start_from + show_per_page;
//隐藏内容ul的所有子元素,获取特定项目并显示它们
$('.airfly_list').children().css('display', 'none').slice(start_from, end_on).css('display', 'block');
if(pageCount > 5){
//显示页面
pageGroup(page,pageCount);
}else{
$(this).addClass("on");
$(this).siblings("li").removeClass("on");
}
});
//点击上一页触发
$("#pageGro .pageUp").click(function(){
var pageNum = parseInt($("#pageGro li.on").html());//获取当前页
if (pageNum <= 1) {
var page = pageNum;
}else{
var page = pageNum-1;
}
var show_per_page = parseInt($('#show_per_page').val());
//开始
start_from = page * show_per_page - show_per_page;
//结束
end_on = start_from + show_per_page;
//隐藏内容ul的所有子元素,获取特定项目并显示它们
$('.airfly_list').children().css('display', 'none').slice(start_from,end_on).css('display', 'block');
if(pageCount > 5){
pageUp(pageNum,pageCount);
}else{
var index = $("#pageGro ul li.on").index();//获取当前页
if(index > 0){
$("#pageGro li").removeClass("on");//清除所有选中
$("#pageGro ul li").eq(index-1).addClass("on");//选中上一页
}
}
});
//点击下一页触发
$("#pageGro .pageDown").click(function(){
var pageNum = parseInt($("#pageGro li.on").html());//获取当前页
var page = pageNum;
if (pageNum===pageCount) {
page = pageNum-1;
}
var show_per_page = parseInt($('#show_per_page').val());
//开始
start_from = page * show_per_page;
//结束
end_on = start_from + show_per_page;
//隐藏内容ul的所有子元素,获取特定项目并显示它们
$('.airfly_list').children().css('display', 'none').slice(start_from, end_on).css('display', 'block');
if(pageCount > 5){
pageDown(pageNum,pageCount);
}else{
var index = $("#pageGro ul li.on").index();//获取当前页
if(index+1 < pageCount){
$("#pageGro li").removeClass("on");//清除所有选中
$("#pageGro ul li").eq(index+1).addClass("on");//选中上一页
}
}
});
//点击首页
$("#pageGro .pagestart").live("click",function(){
var pageNum = $('#start_page').val();
//开始
start_from = pageNum * show_per_page;
//结束
end_on = start_from + show_per_page;
//隐藏内容ul的所有子元素,获取特定项目并显示它们
$('.airfly_list').children().css('display', 'none').slice(start_from, end_on).css('display', 'block');
if (pageCount > 5) {
//显示页码
pageGroup(1,pageCount);
}else{
var index = $("#pageGro ul li.on").index();//获取当前页
if(index < pageCount){
$("#pageGro li").removeClass("on");//清除所有选中
$("#pageGro ul li:first").addClass("on");
}
}
});
//点击尾页
$("#pageGro .pageend").live("click",function(){
var pageNum1 = $('#end_page').val();
var pagenum = pageNum1-2
var page = pageNum1-1;
//开始
start_from = page * show_per_page;
//结束
end_on = start_from + show_per_page;
//隐藏内容ul的所有子元素,获取特定项目并显示它们
$('.airfly_list').children().css('display', 'none').slice(start_from, end_on).css('display', 'block');
if (pageCount > 5) {
//显示页码
pageGroup(pagenum,pageNum1);
$("#pageGro ul li:last-child").addClass("on").siblings().removeClass("on");
}else{
var index = $("#pageGro ul li.on").index();//获取当前页
if(index < pageCount){
$("#pageGro li").removeClass("on");//清除所有选中
$("#pageGro ul li:last-child").addClass("on");
}
}
});
});
//点击跳转页面
function pageGroup(pageNum,pageCount){
switch(pageNum){
case 1:
page_icon(1,5,0);
break;
case 2:
page_icon(1,5,1);
break;
case pageCount-1:
page_icon(pageCount-4,pageCount,3);
break;
case pageCount:
page_icon(pageCount-4,pageCount,4);
break;
default:
page_icon(pageNum-2,pageNum+2,2);
break;
}
}
//根据当前选中页生成页面点击按钮
function page_icon(page,count,eq){
var ul_html = "";
for(var i=page; i<=count; i++){
ul_html += "<li>"+i+"</li>";
}
$("#pageGro ul").html(ul_html);
$("#pageGro ul li").eq(eq).addClass("on");
}
//上一页
function pageUp(pageNum,pageCount){
switch(pageNum){
case 1:
break;
case 2:
page_icon(1,5,0);
break;
case pageCount-1:
page_icon(pageCount-4,pageCount,2);
break;
case pageCount:
page_icon(pageCount-4,pageCount,3);
break;
default:
page_icon(pageNum-2,pageNum+2,1);
break;
}
}
//下一页
function pageDown(pageNum,pageCount){
switch(pageNum){
case 1:
page_icon(1,5,1);
break;
case 2:
page_icon(1,5,2);
break;
case pageCount-1:
page_icon(pageCount-4,pageCount,4);
break;
case pageCount:
break;
default:
page_icon(pageNum-2,pageNum+2,3);
break;
}
}
<div id="pageGro" class="cb">
<div class="pagestart">首页</div>
<div class="pageUp">上一页</div>
<div class="pageList">
<ul></ul>
</div>
<div class="pageDown">下一页</div>
<div class="pageend">尾页</div>
<input type="hidden" id="start_page">
<input type="hidden" id="current_page" />
<input type="hidden" id="show_per_page" />
<input type="hidden" id="end_page">
</div>
#pageGro{clear: both; margin:0px auto; padding:30px 0;text-align: center;}
#pageGro div,#pageGro div ul li{ font-size:16px; color:#333; line-height:30px; display: inline-block;cursor: pointer;}
#pageGro div ul li{ margin:0 1px;padding: 9px 10px; background:#fff; min-width: 28px;height: 30px; text-align:center; border:1px solid #e4e4e4; cursor:pointer;}
#pageGro div ul li.on{ color:#fff; background:#50ad6b; border-color:#50ad6b;}
#pageGro .pageUp,#pageGro .pageDown,#pageGro .pagestart,#pageGro .pageend{padding: 9px 20px; text-align: center; border:1px solid #e4e4e4;background: #fff; cursor:pointer;}
#pageGro .pageUp:hover,#pageGro .pageDown:hover,#pageGro .pagestart:hover,#pageGro .pageend:hover,#pageGro div ul li:hover{ color:#fff; background:#50ad6b; border-color:#50ad6b;}