使用muidemo中的pullrefresh_with_tab.html+vue.js遇到列表不能滑动问题解决办法

使用muidemo中的pullrefresh_with_tab.html+vue.js遇到列表不能滑动问题解决办法

下拉刷新 上拉加载

踩过很多坑,终于被我摸索出来了,按照我这个模板就可以滑动,如有问题可以留言相互探讨。

<!DOCTYPE html>
<html>

<head> 
  <meta charset="utf-8"> 
  <title>Hello MUI</title> 
  <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no"> 
  <meta name="apple-mobile-web-app-capable" content="yes"> 
  <meta name="apple-mobile-web-app-status-bar-style" content="black"> 

  <link rel="stylesheet" href="../../css/mui.min.css"> 
  <style> 
    html, 
    body { 
      background-color: #efeff4; 
    } 

    .mui-bar~.mui-content .mui-fullscreen { 
      top: 44px; 
      height: auto; 
    } 

    .mui-pull-top-tips { 
      position: absolute; 
      top: -20px; 
      left: 50%; 
      margin-left: -25px; 
      width: 40px; 
      height: 40px; 
      border-radius: 100%; 
      z-index: 1; 
    } 

    .mui-bar~.mui-pull-top-tips { 
      top: 24px; 
    } 

    .mui-pull-top-wrapper { 
      width: 42px; 
      height: 42px; 
      display: block; 
      text-align: center; 
      background-color: #efeff4; 
      border: 1px solid #ddd; 
      border-radius: 25px; 
      background-clip: padding-box; 
      box-shadow: 0 4px 10px #bbb; 
      overflow: hidden; 
    } 

    .mui-scroll-wrapper { 
      position: absolute; 
      overflow: hidden; 
      bottom: 0; 
    } 

    .mui-scroll { 
      position: absolute; 
    } 

    .mui-pull-top-tips.mui-transitioning { 
      -webkit-transition-duration: 200ms; 
      transition-duration: 200ms; 
    } 

    .mui-pull-top-tips .mui-pull-loading { 
      s 
      /*-webkit-backface-visibility: hidden; 
      -webkit-transition-duration: 400ms; 
      transition-duration: 400ms;*/ 
      margin: 0; 
    } 

    .mui-pull-top-wrapper .mui-icon, 
    .mui-pull-top-wrapper .mui-spinner { 
      margin-top: 7px; 
    } 

    .mui-pull-top-wrapper .mui-icon.mui-reverse { 
      /*-webkit-transform: rotate(180deg) translateZ(0);*/ 
    } 

    .mui-pull-bottom-tips { 
      text-align: center; 
      background-color: #efeff4; 
      font-size: 15px; 
      line-height: 40px; 
      color: #777; 
    } 

    .mui-pull-top-canvas { 
      overflow: hidden; 
      background-color: #fafafa; 
      border-radius: 40px; 
      box-shadow: 0 4px 10px #bbb; 
      width: 40px; 
      height: 40px; 
      margin: 0 auto; 
    } 

    .mui-pull-top-canvas canvas { 
      width: 40px; 
    } 

    .mui-slider-indicator.mui-segmented-control { 
      background-color: #efeff4; 
    } 

    .mui-slider .mui-slider-group .mui-slider-item { 
      width: 100%; 
      height: 100%; 
    } 
  </style> 
</head> 

<body> 
  <header class="mui-bar mui-bar-nav"> 
    <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> 
    <h1 class="mui-title">选项卡切换+下拉刷新(div模式)</h1> 
  </header> 
  <div class="mui-content" id="app"> 
    <div class="mui-slider mui-fullscreen"> 
      <div id="sliderSegmentedControl" class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted"> 
        <div class="mui-scroll"> 
          <!--<a v-for="(index,item) in tabList" v-bind:class="[mui-control-item,{mui-active:isActive}]" v-bind:href="'#item'+idnex+'mobile'"> 
            {{item.title}} 
          </a>--> 
          <a class="mui-control-item mui-active" href="#item1mobile"> 
            推荐 
          </a> 
          <a class="mui-control-item" href="#item2mobile"> 
            热点 
          </a> 
          <a class="mui-control-item" href="#item3mobile"> 
            北京 
          </a> 
        </div> 
      </div> 
      <div id="slider" class="mui-slider-group"> 
        <div id="item1mobile" class="mui-slider-item mui-control-content mui-scroll-wrapper mui-active"> 
          <div class="mui-scroll"> 
            <ul class="mui-table-view"> 
              <li v-for="item in tuijian" class="mui-table-view-cell"> 
                {{item.title}} 
              </li> 
            </ul> 
          </div> 
        </div> 
        <div id="item2mobile" class="mui-slider-item mui-control-content mui-scroll-wrapper"> 
          <div class="mui-scroll"> 
            <ul class="mui-table-view mui-table-view-chevron"> 
              <li v-for="item in redian" class="mui-table-view-cell"> 
                {{item.title}} 
              </li> 
            </ul> 
          </div> 
        </div> 
        <div id="item3mobile" class="mui-slider-item mui-control-content mui-scroll-wrapper"> 
          <div class="mui-scroll"> 
            <ul class="mui-table-view mui-table-view-chevron"> 
              <li v-for="item in beijing" class="mui-table-view-cell"> 
                {{item.title}} 
              </li> 
            </ul> 
          </div> 
        </div> 
      </div> 
    </div> 
  </div> 
  <script src="../../js/mui.min.js"></script> 
  <script src="../../js/mui.pullToRefresh.js"></script> 
  <script src="../../js/mui.pullToRefresh.material.js"></script> 
  <script src="../../js/utils/vue.js"></script> 
  <script src="../../js/utils/app.js"></script> 
  <script type="text/javascript"> 
    mui.init(); 
    (function($) { 
      //阻尼系数 
      $.ready(function() { 
        newsVue.initVuePage(); 
      }); 
    })(mui); 

    var newsVue = new Vue({ 
      el: '#app', 
      data: { 
        tuijian: [], 
        redian: [], 
        beijing: [], 
        isActive: false, 
        count: 0 
      }, 
      updated: function() { 
        this.$nextTick(function() { 

        }) 

      }, 
      methods: { 
        initVuePage: function() { 
          console.log("AAAAAAAAA"); 
          //循环初始化所有下拉刷新,上拉加载。 
          mui.each(document.querySelectorAll('.mui-slider-group .mui-scroll'), function(index, pullRefreshEl) { 
            mui(pullRefreshEl).pullToRefresh({ 
              down: { 
                callback: function() { 
                  var self = this; 
                  setTimeout(function() { 
                    newsVue.pulldownRefresh(index); 
                    self.endPullDownToRefresh(); 
                  }, 1000); 
                } 
              }, 
              up: { 
                callback: function() { 
                  var self = this; 
                  setTimeout(function() { 
                    newsVue.pullupRefresh(index); 
                    self.endPullUpToRefresh(); 
                  }, 1000); 
                } 
              } 
            }); 
          }); 
        }, 
        /** 
         * 下拉刷新获取最新列表  
         */ 
        pulldownRefresh: function(index) { 
          newsVue.count++; 
          if(index == 0) { 
            newsVue.tuijian = newsVue.createFragment(); 
          } else if(index == 1) { 
            newsVue.redian = newsVue.createFragment(); 
          } else { 
            newsVue.beijing = newsVue.createFragment(); 
          } 

          //           console.log(JSON.stringify(newsVue.newsList[index])); 
        }, 
        /** 
         * 上拉加载拉取历史列表  
         */ 
        pullupRefresh: function(index) { 
          newsVue.count++; 
          if(index == 0) { 
            newsVue.tuijian = newsVue.createFragment(); 
          } else if(index == 1) { 
            newsVue.redian = newsVue.createFragment(); 
          } else { 
            newsVue.beijing = newsVue.createFragment(); 
          } 
        }, 
        createFragment: function() { 
          var newItems = []; 
          for(var i = 0; i < 5 * newsVue.count; i++) { 
            newItems.push({ 
              title: "第" + i + "个例子" 
            }); 
          } 
          return newItems; 
        } 
      } 
    }); 
  </script> 
</body>

</html>

posted @ 2021-03-03 09:15  试问蟾宫  阅读(141)  评论(0)    收藏  举报