简单分页效果

<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>
原文地址:https://www.cnblogs.com/happen-/p/8316486.html