2_上拉加载下拉刷新

 

  • 核心代码

<template>

<div id="load">

<div class="page-loadmore">

<div class="page-loadmore-wrapper" ref="wrapper" :style="{ height: wrapperHeight + 'px' }">

<v-loadmore :top-method="loadTop"

:bottom-method="loadBottom"

:bottom-all-loaded="allLoaded"

:auto-fill="false"

ref="loadmore">

 

<ul class="page-loadmore-list">

<li class="page-loadmore-listitem" v-for="(val, key) in pageList">{{val.name}}</li>

</ul>

</v-loadmore>

</div>

</div>

</div>

</template>

 

<script>

import { Loadmore } from 'mint-ui'

 

export default {

data: function () {

return {

wrapperHeight: 0,

pageList: [

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'lisi', age: 18}

],

allLoaded: false, // 是否可以上拉属性,false可以上拉,true为禁止上拉,就是不让往上划加载数据了

scrollMode: 'auto' // 移动端弹性滚动效果,touch为弹性滚动,auto是非弹性滚动

}

},

components: {

// 为组件起别名,vue转换template标签时不会区分大小写,例如:loadMore这种标签转换完就会变成loadmore,容易出现一些匹配问题

'v-loadmore': Loadmore

},

mounted () {

this.wrapperHeight = document.documentElement.clientHeight - this.$refs.wrapper.getBoundingClientRect().top

},

methods: {

loadTop: function () {

// 组件提供的下拉触发方法

// 下拉加载

// 固定方法,查询完要调用一次,用于重新定位

var temp = this.$refs.loadmore

var pageList = this.pageList

setTimeout(() => {

 

for (var i = 0; i < 10; i++) {

var item = {name: 'zhangsan' + i, age: 20}

pageList.unshift(item)

}

temp.onTopLoaded()

}, 3000)

},

loadBottom: function () {

// 上拉加载

var temp = this.$refs.loadmore

var pageList = this.pageList

 

setTimeout(() => {

var test = [

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20},

{name: 'zhangsan', age: 20}]

 

test.forEach((item, index) => {

pageList.push(item)

})

 

temp.onBottomLoaded()// 固定方法,查询完要调用一次,用于重新定位

}, 3000)

},

isHaveMore: function (isHaveMore) {

// 是否还有下一页,如果没有就禁止上拉刷新

this.allLoaded = true // true是禁止上拉加载

if (isHaveMore) {

this.allLoaded = false

}

}

}

}

</script>

 

<style scoped>

 

::-webkit-scrollbar {

display: none

}

 

.page-loadmore-list {

padding: 0px;

margin: 0px;

}

 

.page-loadmore-listitem {

height: 50px;

line-height: 50px;

text-align: center;

list-style-type: none;

border-bottom: 1px solid gray;

}

 

.page-loadmore-wrapper {

overflow: scroll;

}

 

</style>

 

 

 

转载于:https://my.oschina.net/u/3783808/blog/1628136

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值