分页样式 和 后台

1、先看效果图

141559_HPgk_3551274.png

(前7页)

141813_zxvy_3551274.png

(中间)

141627_VRN4_3551274.png

(后7页)

 

2、代码部分

其中 传参 和  跳转部分也就不说了----直接贴 CSS样式  和  后端代码

.wrap .page-box {
  width: 100%;
  position: relative;
  height: 32px;
  margin: 30px 0 40px 0;
}
.wrap .page-box .page {
  position: absolute;
  transform: translate(-50%, -50%);
  left: 50%;
  top: 50%;
}
.wrap .page-box .page a {
  width: 30px;
  height: 30px;
  display: block;
  line-height: 30px;
  border: 1px solid #ccc;
  box-sizing: border-box;
  text-align: center;
  float: left;
  margin-right: 10px;
  font-size: 13px;
}
.wrap .page-box .page a:last-child {
  margin-right: 0;
}
.wrap .page-box .page a:hover {
  background: #6cbef6;
  border-color: #6cbef6;
  color: #fff;
  transition: all .5s;
}
.wrap .page-box .page a.on {
  background: #6cbef6;
  border-color: #6cbef6;
  color: #fff;
}
.wrap .page-box .page a.no {
  opacity: 0;
  cursor: default;
}

DIV整体结构图如下,但这里没有分页没有写在HTML中,写在了Java代码中,直接放到了前台

public class Pages {
	public static final String ATTR_PAGE = "_page";
	public static final String ATTR_TOTAL_PAGE ="_total_page";
	public static final String ATTR_TOTAL_RECODE = "_total_recode";

	private int page; // 当前页
	private int totalPage; // 总页数
	private int totalRecode; //总记录数
	private String url; // 当前url,再参数
	private String params;
	private boolean useJSRequest;
	private String pageStyle;

	private static final int t = 7;  // 分页样式控制

    

    


      //中间省却getter setter 和 各种调用代码


    

	/**
	 * 新的分页Lee
	 * page; 		// 当前页
	 * totalPage; 	// 总页数
	 * totalRecode; //总记录数
	 * url; 		// 当前url,再参数
	 */
	private void writeNewPage(StringBuilder sb){
		//总共页数
		sb.append("<p class='count'>总条数:").append(totalRecode).append("条</p>");
		
		//上一页
		sb.append("<div class='page-box'><div class='page clearfix'>");
		if (page <= 1) {//<a class="prev no" href="javascript:void(0);">
			sb.append("<a class='prev no' href='#'> < </a> ");					
		}else{
			sb.append("<a class='prev' href='"+url+"page="+(page-1)+"' > < </a>");
		}
		
		// 小于前7页时展现形式
		if( page < t ){
			//前7页的样式
			for(int i = 1; i <= t ; i ++ ){
				if( i > totalPage )
					break;
				if(page == i){
					sb.append("<a class='on' >"+page+"</a>");
				}else{
					sb.append("<a  href='"+url+"page="+i+"'>"+i+"</a>");
				}
			}
			
			//总页数大于7页,显示最后两页
			if(totalPage>t+1){
				sb.append("<a href='#' >...</a> ");
				if(totalPage-2>=t){
					int lastpage = (totalPage-1);
					sb.append("<a href='"+url+"page="+lastpage+"'>"+lastpage+"</a>");
					sb.append("<a href='"+url+"page="+totalPage+"'>"+totalPage+"</a>");
				}else{
					sb.append("<a href='"+url+"page="+totalPage+"'>"+totalPage+"</a>");
				}
			}
			
		 //大于7页小于总页数时的样式
		}else if( page >= t ){
			//显示前两页 :1 2 ...  中间页 ... n n+1
			sb.append("<a href='"+url+"page=1'>1</a>");
			sb.append("<a href='"+url+"page=2'>2</a>");
			sb.append("<a href='#'>...</a>");
			
			
			if((totalPage-page)>=t){
				
				for(int i = 1; i <= t; i ++ ){
					if(i == 4){
						sb.append("<a class='on' >"+page+"</a>");
					}else{
						sb.append("<a href='"+url+"page="+(page-(4-i))+"'>"+(page-(4-i))+"</a>");
					}
				}
				
				sb.append("<a href='#' >...</a> ");
				int lastpage = (totalPage-1);
				sb.append("<a href='"+url+"page="+lastpage+"'>"+lastpage+"</a>");
				sb.append("<a href='"+url+"page="+totalPage+"'>"+totalPage+"</a>");
			
			//到后7页时的样式: 1 2 ... 后7页	
			}else{
				int first = 0;
				if(totalPage-2>t){
					first = totalPage -7;
				}else{
					first = 3;
				}
				
				for(int i = 0; i <= t; i ++ ){
					int x = first + i   ;
					if( x > totalPage )
						break;
					
					if( page == x ){
						sb.append("<a class='on' >"+x+"</a>");
					}else{
						sb.append("<a href='"+url+"page="+x+"'>"+x+"</a>");
					}
				}
			}
		}
		
		// 结尾
		if(page<totalPage){
			sb.append("<a class='next'  href='"+url+"page="+(page+1)+"'> > </a>");
		}else{
			sb.append("<a href='#' class='next'> > </a>");
		}
		sb.append("</div></div>");
	}
}

 

转载于:https://my.oschina.net/u/3551274/blog/1491492

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值