swiper下拉刷新上滑加载

<!DOCTYPE html>
<html lang="en"><head>
    <meta charset="utf-8">
    <title>Swiper demo</title>
    <!-- Link Swiper's CSS -->
    <link rel="stylesheet" href="./css/swiper.min.css">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <!-- Demo styles -->
    <style>
      html, body {
        position: relative;
        height: 100%;
      }
      body {
        background: #eee;
        font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
        font-size: 14px;
        color:#000;
        margin: 0;
        padding: 0;
      }
      .swiper-container {
        width: 100%;
        height:100%;
      }
      .swiper-slide {
        text-align: center;
        font-size: 18px;
        background: #fff;
        height:100px;
        line-height:100px;
        /* Center slide text vertically */
        display: -webkit-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        -webkit-justify-content: center;
        justify-content: center;
        -webkit-box-align: center;
        -ms-flex-align: center;
        -webkit-align-items: center;
        align-items: center;
      }
      .refresh{
          position:absolute;
          line-height:100px;
          bottom:100%;
          text-align:center;
          width:100%;}
      .loadmore{
          position:absolute;
          line-height:20px;
          top:100%;
          text-align:center;
          width:100%;
          }
    </style>
  </head>
  <body>
    <!-- Swiper -->
    <div class="swiper-container">
    
      <div class="swiper-wrapper" style="height: 2000px;">
      <div class="refresh">释放刷新</div>
        <div class="swiper-slide swiper-slide-active">Slide 1</div>
        <div class="swiper-slide swiper-slide-next">Slide 2</div>
        <div class="swiper-slide">Slide 3</div>
        <div class="swiper-slide">Slide 4</div>
        <div class="swiper-slide">Slide 5</div>
        <div class="swiper-slide">Slide 6</div>
        <div class="swiper-slide">Slide 7</div>
        <div class="swiper-slide">Slide 8</div>
        <div class="swiper-slide">Slide 9</div>
        <div class="swiper-slide">Slide 10</div>
        <div class="swiper-slide">Slide 11</div>
        <div class="swiper-slide">Slide 12</div>
        <div class="swiper-slide">Slide 13</div>
        <div class="swiper-slide">Slide 14</div>
        <div class="swiper-slide">Slide 15</div>
        <div class="swiper-slide">Slide 16</div>
        <div class="swiper-slide">Slide 17</div>
        <div class="swiper-slide">Slide 18</div>
        <div class="swiper-slide">Slide 19</div>
        <div class="swiper-slide">Slide 20</div>
        <div class="loadmore">加载更多</div>
      </div>
      <div class="swiper-scrollbar"><div class="swiper-scrollbar-drag" style="height: 217.776px; transform: translate3d(0px, 0px, 0px);"></div></div>
    <span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>

</div>
  
    <!-- Swiper JS -->
    <script src="./js/swiper.min.js"></script>
  
    <!-- Initialize Swiper -->
    <script>
      refreshEnd= false;
      times=0;//加载次数
      oriSpeed=300
      var swiper = new Swiper('.swiper-container',{
          speed: oriSpeed,
          slidesPerView: 'auto',
          freeMode: true,
          direction: 'vertical',
          setWrapperSize: true,
          scrollbar: {
              el: '.swiper-scrollbar',
          },
          on:{
              //下拉释放刷新
              touchEnd: function(){
                  console.log(1)
                  swiper=this
                  refreshText=swiper.$el.find('.refresh')
                  if(this.translate>100){
                      swiper.setTransition(this.params.speed);
                      swiper.setTranslate(100);
                      swiper.touchEventsData.isTouched=false;//跳过touchEnd事件后面的跳转(4.0.5)
                      refreshText.html('刷新中')
                      
                      swiper.allowTouchMove=false;
                      setTimeout(function(){//模仿AJAX
                          swiper.removeAllSlides();
                          for(i=0;i<20;i++){
                          swiper.appendSlide('<div class="swiper-slide">New Slide'+(i+1)+'</div>');
                          refreshText.html('刷新完成');
                          refreshEnd=true;
                          swiper.allowTouchMove=true;
                          }
                      },1000)
                      
                   }
                   
              },
              touchStart: function(){
                console.log(2)
                  if(refreshEnd==true){
                      this.$el.find('.refresh').html('释放刷新');
                      refreshEnd=false;
                  }
              },
              
              //加载更多
              momentumBounce: function(){//非正式反弹回调函数,上拉释放加载更多可参考上例
                console.log(3)
                  swiper=this
                  if(swiper.translate<-100){
          
                      swiper.allowTouchMove=false;//禁止触摸
                      swiper.params.virtualTranslate=true;//定住不给回弹
                      setTimeout(function(){//模仿AJAX
                          for(m=0;m<20;m++){
                              swiper.appendSlide('<div class="swiper-slide">moreSlide'+(times*20+m+1)+'</div>');	
                          }
                          swiper.params.virtualTranslate=false;
                          swiper.allowTouchMove= true;
                          times++
                      },1000)
                      
                  }
              },
          }
      });
  
    </script>
  
  
  </body></html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值