<html>
<head>
<meta charset="UTF-8">
<title>分页测试</title>
<style type="text/css">
span {
width: 20px;
height: 20px;
border: 1px solid #ccc;
border-radius: 2px;
display: block;
float: left;
margin-left: 5px;
cursor: pointer;
text-align: center;
line-height: 20px;
}
.result {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
</style>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.page-btn').on('click', function() {
var _html = '';
var _currentNum = parseInt($('#currentNum').val());
var _countNum = parseInt($('#countNum').val());
var _firstNum = _currentNum - 2;
var _lastNum = _currentNum + 2;
if (_countNum <= 6) {
_firstNum = 1;
_lastNum = _countNum;
}
if (_firstNum < 1) {
_lastNum = _lastNum + (1 - _firstNum);
_firstNum = 1;
}
if (_lastNum > _countNum) {
_firstNum = _firstNum - (_lastNum - _countNum);
_lastNum = _countNum;
}
_html += '<span class="befor-page"><</span>';
if (_firstNum !== 1) {
_html += '<span>1</span>';
}
if (_firstNum - 1 > 1) {
_html += '<span>…</span>';
}
for (var i = _firstNum; i <= _lastNum; i++) {
if (i === _currentNum) {
_html += '<span style="color:red;">' + i + '</span>'
} else {
_html += '<span>' + i + '</span>'
}
}
if (_countNum - _lastNum > 1) {
_html += '<span>…</span>';
}
if (_lastNum !== _countNum) {
_html += '<span>' + _countNum + '</span>';
}
_html += '<span class="after-page">></span>';
$('.result').html(_html);
});
$(document).delegate('.result>span', 'click', function() {
var _this = this;
var _currentNum = parseInt($('#currentNum').val());
var _countNum = parseInt($('#countNum').val());
var _activeNum = parseInt($(_this).html());
if ($(_this).hasClass('befor-page')) {
_currentNum -= 1;
} else if ($(_this).hasClass('after-page')) {
_currentNum += 1;
} else if (!_activeNum) {
return;
} else {
_currentNum = _activeNum;
}
if (_currentNum < 1) {
_currentNum = 1;
}
if (_currentNum > _countNum) {
_currentNum = _countNum;
}
$('#currentNum').val(_currentNum);
$('.page-btn').click();
});
});
</script>
</head>
<body>
<label for="currentNum">当前页:</label>
<input type="text" id="currentNum" value="7">
<label for="countNum">总页数:</label>
<input type="text" id="countNum" value="70">
<input class="page-btn" type="button" value="分页结果">
<div class="result"></div>
</body>
</html>