html+css+js实现Pagination 分页

效果图

HTML部分

<body>
  <div class="pagination">
    <button class="prev"><</button>
    <ul>
      <li class="active">1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
    </ul>
    <button class="next">></button>
  </div>
</body>

CSS部分

<style>
    *{
      padding: 0;
      margin: 0;
      box-sizing: border-box;
    }
    .pagination{
      margin: 50px auto;
      display: flex;
      justify-content: space-between;
      width: 300px;
      height: 50px;
      /* background-color: pink; */
    }
    .pagination ul{
      display: flex;
      flex: 1;
      justify-content: space-between;
      list-style: none;
      line-height: 50px;
      padding: 0 20px;
    }
    .pagination ul li{
      font-weight: 550;
      font-size: 18px;
      cursor: pointer;
    }
    .pagination ul li.active,
    .pagination ul li:hover{
      color: #409eff;
    }
    .pagination button{
      display: block;
      border: none;
      background-color: transparent;
      width: 50px;
      font-size: 20px;
    }
    button{
      cursor: pointer;
    }
    button:disabled{
      color: #c0c4cc;
      cursor: not-allowed;
    }
    button:hover{
      color:#409eff ;
    }
  </style>

JS部分

<script>
  // 1.next
  const next =document.querySelector('.next')
  let i =1
  next.addEventListener('click',function(){
    i++
    // i = i>5 ? 5 : i
    if(i>=5){
      i=5
      this.disabled = true;
      prev.disabled = false;
      // console.log('next-',this.disabled,this);
    }else{
      this.disabled = false;
      prev.disabled = false;
      // console.log('next-',this.disabled,this);
    }
    document.querySelector('.active').classList.remove('active')
    document.querySelector(`li:nth-child(${i})`).classList.add('active')
  })
  const prev=document.querySelector('.prev')
  // 2.prev
  prev.addEventListener('click',function(){
    i--
    // i = i<1 ? 1 : i
    if(i<=1){
      this.disabled = true;
      next.disabled = false;
      // console.log('prev-',this.disabled,this);
    }else{
      this.disabled = false;
      next.disabled = false;
      // console.log('prev-',this.disabled,this);
    }
    document.querySelector('.active').classList.remove('active')
    document.querySelector(`li:nth-child(${i})`).classList.add('active')
  })
  const ul=document.querySelector('ul')
  // 3.点击数字
  ul.addEventListener('click',function(e){
    if(e.target.tagName==='LI'){
      document.querySelector('.pagination .active').classList.remove('active')
      e.target.classList.add('active')
    }
  })
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值