代码语言:javascript复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js图片预览功能</title>
<script src="jquery-2.1.1.js" ></script>
</head>
<style type="text/css">
body,html{
margin: 0;
padding: 0;
}
body{
width: 80%;
margin-left: 5%;
}
ul{
list-style: none;
padding: 0;
margin: 0;
}
a{
text-decoration: none;
color: #000;
}
#inner ul li{
float:left;
}
#inner ul li {
width: 35px;
height: 35px;
line-height: 35px;
background: #fff;
margin-right: 2px;
text-align: center;
cursor: pointer;
border:1px solid #f9f9f9;
}
#inner ul .not{
cursor: default;
}
#inner ul li a{
width: 100%;
height: 100%;
display: inline-block;
text-align: center;
}
#inner ul .pre,#inner ul .next{
width: 70px;
}
#inner ul li:hover{
border:1px solid #FF4400;
color:#FF4400;
}
#inner ul .not:hover{
border:1px solid #f9f9f9;
color:#000;
}
#inner ul .hide{
display: none;
}
#inner ul .current:hover{
border:1px solid #f9f9f9;
color:#fff;
}
#inner ul .current{
background: #FF4400;
cursor: default;
color:#fff;
}
#inner ul .noNext{
cursor:default;
}
#inner ul .noNext:hover{
border:1px solid #f9f9f9;
color:#000;
}
#inner ul .noNext a{
cursor:default;
}
</style>
<body>
<!--头部-->
<div style="margin-left:100px;margin-top:100px;" id="text"></div>
</body>
</html>
<script type="text/javascript">
var fenye ={
//按钮响应时的下一个页面
Current:1,
//li数
LisLen:0,
//页数
acount:0,
init:function(amount,data,id,num,fn){//分别为总数 每页个数 插入到某处的ID 显示第几页 按钮响应函数
num = Number(num);
this.fn = fn;
//创建DOM
this.acount = parseInt((amount�ta)==0?(amount/data):(amount/data 1));
this.LisLen = (this.acount > 9) ? 9 :this.acount ;
this.lastPage = (num > this.acount) ? this.acount :((num < 1 )?1:num);
var $div = $("<div id='inner'></div>");
var $ul = $("<ul class='items'></ul>");
$div.append($ul);
var $pre = "<li class='item pre'><a href='#'><span><<上一页</span></a></li>";
var $next = "<li class='item next'><a href='#'><span>下一页>></span></a></li>";
var $text="";
for(var i =0;i<this.LisLen;i ){
$text = "<li class='item page'><a href='#'><span></span></a></li>" ;
}
$ul.append($pre).append($text).append($next);
$id = $("#" id);
$id.append($div);
this.pageLis = $div.find(".items .page");
this.change(this.lastPage);
this.control();
},
eventDefault:function(event){
event.preventDefault();
return false;
},
//判断是否为首尾页 从而禁止前一页和下一页的点击事件
isLast:function(){
var $current = $(".current a span").html();
//最后一页
if($current == this.acount)
{
$(".items .next").addClass('noNext');
$(".items .next").on('click', 'a', this.eventDefault);
}else{
$(".items .next").removeClass('noNext');
$(".items .next").off('click', 'a', this.eventDefault);
}
//第一页
if($current == 1)
{
$(".items .pre").addClass('noNext');
$(".items .pre").on('click', 'a', this.eventDefault);
}else{
$(".items .pre").removeClass('noNext');
$(".items .pre").off('click', 'a', this.eventDefault);
}
},
//
change:function(pageNum){
pageNum = Number(pageNum);
//渲染到第几个li
var index = 0;
//去除样式
$('#inner .items .current').removeClass('current');
$('#inner .items .not').removeClass('not');
$('#inner .items .hide').removeClass('hide');
//若小于四 则按顺序创建页数1,2,3等
if(pageNum<=4){
//console.log(this.pageLis.eq(this.Current))
for(var i=0;i<pageNum;i ){
if(i 1==pageNum){
this.pageLis.eq(i).addClass('current');
}
this.pageLis.eq(i).find("a span").html(i 1);
index = i 1;
}
//否则 先创建1,2,再创建... 再创建当前页数
}else{
for(var i=0;i<2;i ){
this.pageLis.eq(i).find("a span").html(i 1);
}
this.pageLis.eq(2).addClass('not').find("a span").html("...");
this.pageLis.eq(3).addClass('current').find("a span").html(pageNum);
index = 4;
}
//若 2大于总页数 则按顺序显示至总页数
if(pageNum 2>=this.acount){
for(var i=pageNum,j=0;i<this.acount;i ){
this.pageLis.eq(index ).find("a span").html(pageNum j 1);
j ;
};
}else{
//否则 先创建后面两页 再创建...
for(var i=0;i<2;i ){
this.pageLis.eq(index ).find("a span").html(pageNum i 1);
}
if(pageNum 3!==this.acount)
this.pageLis.eq(index ).addClass('not').find("a span").html("...");
//再根据页数创建最后两页或一页
if(this.acount-pageNum>4){
this.pageLis.eq(index ).find("a span").html(this.acount-1);
this.pageLis.eq(index ).find("a span").html(this.acount);
}else{
this.pageLis.eq(index ).find("a span").html(this.acount);
}
}
for(var length =this.pageLis.length;index<length;index ){
this.pageLis.eq(index).addClass('hide');
}
this.isLast();
},
//响应按钮点击事件
control:function(){
var that = this;
$("body").on('click', '#inner .item a', function(event) {
event.preventDefault();
that.Current = 1;
that.lastPage = Number($('#inner .items .current').find('a span').html());
if($(this).parent().hasClass('next')){
that.Current = that.lastPage 1;
}
else if($(this).parent().hasClass('pre')){
that.Current = that.lastPage-1;
}
else
that.Current = $(this).find('span').eq(0).html();
that.fn(that.Current);
that.change(that.Current);
});
}
}
//测试用例
fenye.init(2,2,"text",9,abc);
function abc(x){
console.log(x)
}
;
</script>