用于移动端的webview

移动端的滚动加载

记录一下经常遇到的滚动加载,滚动条一到底部就加载数据。不用组件,用vue的api

@scroll=”自定义”是vue自带的浏览器滚到api

<template>
  <div class="container"  @scroll="handleScroll()">
  	<div  v-for="(data,index) in data">
      <div>
        <p >订单号 : <span>201611170301</span></p>
      </div>
      <div >
        <p>顾客 : <span>张三</span></p>
      </div>
    </div>
  </div>
</template>
 
<script>
export default {
  data() {
    return {
      data: [1,2,3,4,5,6,7,8,9,10],
      scloll:true,
      page:0,
	  pageCount:10,
    }
  },
  mounted () {
    this.handleScroll();
  },
  methods:{
    handleScroll(){
        //scrollTop为滚动条在Y轴上的滚动距离。
        //clientHeight为内容可视区域的高度。
        //scrollHeight为内容可视区域的高度加上溢出(滚动)的距离。
        if(this.$el.scrollTop+this.$el.offsetHeight>=this.$el.scrollHeight){
          this.loadmore();
          this.scloll=true;
        }else{
          this.scloll=false;
        }
    },
    loadmore() {
    	if (this.page === this.pageCount) {
            console.log('所有数据加载完毕')
            return;
        } else {
              setTimeout(() => {
		        for(var i = 0; i <10; i++) {
		          this.data.push(i);
		        }
		      }, 2000)
            console.log('单次请求数据完毕 ')
            this.page++;
        }
    
    }
  }
}
</script>


参考链接

觉得文章不错就支持一下呗~

打赏二维码