mescroll-uni上拉后下拉就不正常了,请看gif演示图
以下是第一套方案代码
<template>
<view>
<view class="box1"></view>
<view class="box2">
<mescroll-uni @init="mescrollInit" ref="mescrollRes" :up="upOption" :down="downOption" @up="upCallback"
:fixed="false" @down="downCallback">
<view class="listData" v-for="(row,index) in data" :key="index">
{{row}}
</view>
</mescroll-uni>
</view>
<view class="box3"></view>
</view>
</template>
<script>
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
export default {
mixins: [MescrollMixin],
data() {
return {
upOption: {
auto: false,
},
downOption: {
auto: false,
},
dowRefresh: false,
data: []
}
},
mounted() {
this.downCallback();
},
methods: {
upCallback() {
this.getData();
},
downCallback() {
this.dowRefresh = true;
this.mescroll.resetUpScroll();
},
getData() {
setTimeout(() => {
let {
code,
data
} = this.getPhpData(this.mescroll.num, this.mescroll.size);
if (code) {
if (code === 1) {
if (this.dowRefresh) {
this.dowRefresh = false;
this.data = [];
}
this.mescroll.endBySize(data.length, 1000);
this.data = [...this.data, ...data];
}
}
}, 1000)
},
getPhpData(num, size) {
let code = 1;
let data = [];
if (num === 1) {
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
}
if (num === 2) {
data = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
}
if (num === 3) {
data = [21, 22, 23, 24, 25, 26, 27, 28, 29, 30];
}
if (num === 4) {
data = [31, 32, 33, 34, 35, 36, 37, 38, 39, 40];
}
if (num === 5) {
data = [41, 42, 43, 44, 45, 46, 47, 48, 49, 50];
}
return {
code: code,
data: data,
};
}
}
}
</script>
<style scoped>
.box1 {
position: absolute;
top: 0;
left: 0;
right: 0;
background-color: black;
height: 90px;
}
.box2 {
position: absolute;
top: 90px;
left: 0;
right: 0;
bottom: 50px;
background-color: white;
}
.box3 {
position: absolute;
left: 0;
right: 0;
background-color: black;
height: 50px;
bottom: 0;
}
.listData {
padding-top: 10px;
padding-bottom: 10px;
border-bottom: 1px solid #999;
text-align: center;
box-sizing: border-box;
}
</style>
以下是第二套方案代码,还是一样的问题
<template>
<mescroll-uni class="mescroll" @init="mescrollInit" ref="mescrollRes" :up="upOption" :down="downOption"
@up="upCallback" @down="downCallback" :fixed="false">
<view class="listData" v-for="(row,index) in data" :key="index">
{{row}}
</view>
</mescroll-uni>
</template>
<script>
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
export default {
mixins: [MescrollMixin],
data() {
return {
upOption: {
auto: false,
},
downOption: {
auto: false,
},
dowRefresh: false,
data: []
}
},
mounted() {
this.downCallback();
},
methods: {
upCallback() {
this.getData();
},
downCallback() {
this.dowRefresh = true;
this.mescroll.resetUpScroll();
},
getData() {
setTimeout(() => {
let {
code,
data
} = this.getPhpData(this.mescroll.num, this.mescroll.size);
if (code) {
if (code === 1) {
if (this.dowRefresh) {
this.dowRefresh = false;
this.data = [];
}
this.mescroll.endBySize(data.length, 1000);
this.data = [...this.data, ...data];
}
}
}, 1000)
},
getPhpData(num, size) {
let code = 1;
let data = [];
if (num === 1) {
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
}
if (num === 2) {
data = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
}
if (num === 3) {
data = [21, 22, 23, 24, 25, 26, 27, 28, 29, 30];
}
if (num === 4) {
data = [31, 32, 33, 34, 35, 36, 37, 38, 39, 40];
}
if (num === 5) {
data = [41, 42, 43, 44, 45, 46, 47, 48, 49, 50];
}
return {
code: code,
data: data,
};
}
}
}
</script>
<style scoped>
.mescroll {
position: absolute;
top: 90px;
bottom: 50px;
height: auto;
left: 0;
right: 0;
border-top: 1px #000 solid;
border-bottom: 1px #000 solid;
}
.listData {
padding-top: 10px;
padding-bottom: 10px;
border-bottom: 1px solid #000;
text-align: center;
box-sizing: border-box;
background-color: white;
}
</style>