<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>jquery生成带省略号的分页页码(原创)-jq22.com</title>
<script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
<style>
body {
background:#000;
}
.rb_bottom,.rb_bottom .fy_y,.rb_bottom .pnbtn,.rb_bottom .previous,.rb_bottom .next {
display:flex;
justify-content:center;
align-items:center;
}
.fy_y {
width:24px;
height:24px;
box-sizing:border-box;
background:#fff;
border:1px solid #7baaa0;
border-radius:50%;
color:#4f4f4f;
font-size:14px;
font-weight:500;
margin-right:12px;
cursor:pointer;
}
.fy_d {
width:8px;
height:8px;
border-radius:50%;
background:#fff;
margin-right:12px;
}
.selected {
background:#164c86;
color:#fff;
border:0;
}
.pnbtn,.previous,.next {
width:62px;
height:31px;
box-sizing:border-box;
border:3px solid #fff;
border-radius:10px;
font-weight:500;
font-size:14px;
cursor:pointer;
color:#fff;
}
.previous {
margin:0 2px;
}
</style>
</head>
<body>
<div class="rb_bottom">
<div class="fy_y selected">1</div>
<div class="fy_y">2</div>
<div class="fy_y">3</div>
<div class="fy_y">4</div>
<div class="fy_y">5</div>
<div class="fy_d"></div>
<div class="fy_d"></div>
<div class="fy_d"></div>
<div class="fy_y">10</div>
<div class="previous">上一页</div>
<div class="next">下一页</div>
</div>
<script>
var total = 20;
$(function() {
makePage(total, 1);
});
function makePage(total, page) {
var pageHtml = '';
var ddd = '<div class="fy_d"></div><div class="fy_d"></div><div class="fy_d"></div>';
function createPage(index) {
if (page == index) {
pageHtml += '<div class="fy_y selected" >' + page + '</div>';
} else {
pageHtml += '<div class="fy_y" onclick="pageClick(this)">' + index + '</div>';
}
}
if (total <= 10) {
for (var i = 1; i <= total; i++) {
createPage(i);
}
} else {
if (page <= 4) {
for (var i = 1; i <= 4 + 1; i++) {
createPage(i);
}
pageHtml += ddd;
createPage(total);
} else if (page > total - 4) {
createPage(1);
pageHtml += ddd;
for (var i = total - 4; i <= total; i++) {
createPage(i);
}
} else {
createPage(1);
pageHtml += ddd;
for (var i = page - 1; i <= page + 1; i++) {
createPage(i);
}
pageHtml += ddd;
createPage(total);
}
}
if (page > 1 && total > 1) {
pageHtml += '<div class="previous" onclick="previous()">上一页</div>';
} else {
pageHtml += '<div class="previous">上一页</div>';
}
if (page < total && total > 1) {
pageHtml += '<div class="next" onclick="next()">下一页</div>';
} else {
pageHtml += '<div class="next">下一页</div>';
}
$('.rb_bottom').html(pageHtml);
}
function previous() {
var page = $('.rb_bottom>.selected').text();
if (page <= 1) {
return;
}
makePage(total, page - 1);
}
function next() {
var page = $('.rb_bottom>.selected').text();
if (page >= total) {
return;
}
makePage(total, page * 1 + 1);
}
function pageClick(that) {
var page = $(that).html();
makePage(total, page * 1);
}
</script>
</body>
</html>