国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Vue.js上下滾動加載組件的實例代碼

2019-11-19 16:03:38
字體:
來源:轉載
供稿:網友

由于工作的需要并鑒于網上的vue.js滾動加載方案不合適,自己寫了一個簡單實用的。就短短的150行代碼。


組件代碼

// scrollLoader.vue// 滾動加載組件<style scoped>  .container-main {margin: 0 auto; overflow: auto; overflow-x: hidden; padding: 0;}  .loading{ width: 100%; height: 40px; position: relative; overflow: hidden; text-align: center; margin: 5px 0 ; color: #999; font-size: 13px;}  .loading-icon{color: #707070;};  .loader {    font-size: 10px;    margin: 8px auto;    text-indent: -9999em;    width: 24px;    height: 24px;    border-radius: 50%;    background: #999;    background: -moz-linear-gradient(left, #999 10%, rgba(255, 255, 255, 0) 42%);    background: -webkit-linear-gradient(left, #999 10%, rgba(255, 255, 255, 0) 42%);    background: -o-linear-gradient(left, #999 10%, rgba(255, 255, 255, 0) 42%);    background: -ms-linear-gradient(left, #999 10%, rgba(255, 255, 255, 0) 42%);    background: linear-gradient(to right, #999 10%, rgba(255, 255, 255, 0) 42%);    position: relative;    -webkit-animation: load3 1s infinite linear;    animation: load3 1s infinite linear;  }  .loader:before {    width: 50%;    height: 50%;    background: #999;    border-radius: 100% 0 0 0;    position: absolute;    top: 0;    left: 0;    content: '';  }  .loader:after {    background: #f5f5f5;    width: 72%;    height: 75%;    border-radius: 68%;    content: '';    margin: auto;    position: absolute;    top: 0;    left: 0;    bottom: 0;    right: 0;  }  @-webkit-keyframes load3 {  0% {    -webkit-transform: rotate(0deg);    transform: rotate(0deg);  }  100% {    -webkit-transform: rotate(360deg);    transform: rotate(360deg);  }  }  @keyframes load3 {  0% {    -webkit-transform: rotate(0deg);    transform: rotate(0deg);  }  100% {    -webkit-transform: rotate(360deg);    transform: rotate(360deg);  }  }</style><template>  <div id="scrollLoader-container" class="container-main">    <div class="loading" v-if="topLoading">      <div class="loader">加載中...</div>    </div>    <div :style="'min-height:' + realMinHeight + 'px; overflow-x:hidden'">      <slot></slot>    </div>    <div class="loading" v-if="bottonLoading">      <div class="loader">加載中...</div>    </div>  </div></template><script>  export default {    name: "scroll-loader",    props: {      //給slot傳一個最小值,保證一開始能出現滾動條      'minHeight': {        type: Number,        default: 800      },     },    created(){    },    computed: {      realMinHeight(){        return this.minHeight + 30      }    },    data() {      return {        topLoading: false,        bottonLoading: false,        stopTopLoading: false, //是否停止傳播滾動到頂部事件        stopBottonLoading: false, //是否停止傳播滾動到底部事件      }    },    mounted(){      this.listenScroll();    },    methods: {      listenScroll(){        var me = this;        var topDone = (stopTopLoading) => {          me.topLoading = false;          if(stopTopLoading) me.stopTopLoading = true;        };        var bottonDone = (stopBottonLoading) => {          me.bottonLoading = false;          if(stopBottonLoading) me.stopBottonLoading = true;        };        setTimeout(function(){          var scrollContainer = document.getElementById('scrollLoader-container');          scrollContainer.onscroll = function(){            if(scrollContainer.scrollTop<=0 && !me.stopTopLoading){              if(me.topLoading) return;              me.topLoading = true;              me.$emit('scroll-to-top', topDone);            }            if((scrollContainer.offsetHeight + scrollContainer.scrollTop+1 >= scrollContainer.scrollHeight) && !me.stopBottonLoading){              if(me.bottonLoading) return;              me.bottonLoading = true;              scrollContainer.scrollTop += 40;              me.$emit('scroll-to-botton', bottonDone);            }          }        }, 50)      },    }  }</script>

源碼:https://github.com/doterlin/vue-wxChat

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新泰市| 仙桃市| 仪征市| 绵阳市| 都匀市| 威宁| 奎屯市| 铁力市| 扶风县| 黔西| 达孜县| 格尔木市| 抚顺县| 黄山市| 安远县| 星子县| 五指山市| 肃宁县| 伊宁市| 平凉市| 襄城县| 天台县| 大埔区| 驻马店市| 麻城市| 繁昌县| 固阳县| 金门县| 白朗县| 卢龙县| 安平县| 扬中市| 右玉县| 壶关县| 黄龙县| 平阴县| 鄂州市| 哈尔滨市| 石狮市| 斗六市| 崇信县|