Pullload 下拉加载
通用参数
所有组件均支持class和style属性,class可以是vue变量也可以是字符串,style可以是字符串或者对象
注:如果是变量需要在class前面加冒号,例如 :class=”mv-button”
概述
Pullload 下拉加载,支持三种情况,一种是默认window的滚动条、某元素的滚动条、以及scroll滚动条。
1)window默认滚动条 使用方法
需要将组件放到最外层里面的div的底部,status默认为ready,准备就绪,end为结束
<template>
<div class="wrapper-example wrapper-example-load-window">
<div class="wrapper-area-content" id="parent">
<ul>
<li v-for="(key, value) in data">
{{ value.message }} {{ key }}
</li>
</ul>
<Pullload scroll="window" :status.sync="status" @on-load="loaded"></Pullload>
</div>
</div>
</template>
<script>
import Hometitle from './common/hometitle.vue';
import {
Panel,
Pullload,
Button
} from 'mvui';
export default {
components: {
Hometitle,
Pullload,
Button
},
data() {
return {
status: 'ready',
data: [
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'}
]
}
},
methods: {
loaded: function(){
let self = this;
setTimeout(function(){
self.status = 'end';
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
}, 1000);
}
}
}
</script>
2)某元素的默认滚动条 使用方法
用法跟window很像,需要放到滚动元素#parent内的底部
<template>
<div class="wrapper-example wrapper-example-load-window">
<div class="wrapper-area-content" id="parent">
<ul>
<li v-for="(key, value) in data">
{{ value.message }} {{ key }}
</li>
</ul>
<Pullload scroll="window" :status.sync="status" @on-load="loaded"></Pullload>
</div>
</div>
</template>
<script>
import Hometitle from './common/hometitle.vue';
import {
Panel,
Pullload,
Button
} from 'mvui';
export default {
components: {
Hometitle,
Pullload,
Button
},
data() {
return {
status: 'ready',
data: [
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'}
]
}
},
methods: {
loaded: function(){
let self = this;
setTimeout(function(){
self.status = 'end';
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
}, 1000);
}
}
}
</script>
3)scroll滚动条 使用方法
跟window类似,需要放到scroll底部
<template>
<div class="wrapper-example wrapper-example-load-scroll">
<div class="wrapper-area-content" id="parent">
<Scroll :size.sync="size" :is-refresh.sync="isRefresh">
<div slot="down">我是down按钮</div>
<div slot="up">我是up按钮</div>
<div slot="load">我是loadding</div>
<ul>
<li v-for="(key, value) in data">
{{ value.message }} {{ key }}
</li>
</ul>
<Pullload scroll="scroll" :size.sync="size" :status.sync="status" @on-load="loaded"></Pullload>
</Scroll>
</div>
</div>
</template>
<script>
import Hometitle from './common/hometitle.vue';
import {
Panel,
Scroll,
Pullload,
Button
} from 'mvui';
export default {
components: {
Hometitle,
Scroll,
Pullload,
Button
},
data() {
return {
status: 'ready',
size: 0,
isRefresh: false,
data: [
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'}
]
}
},
methods: {
loaded: function(){
let self = this;
setTimeout(function(){
self.status = 'end';
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.isRefresh = true;
}, 1000);
}
}
}
</script>
API
Pullrefresh Props
属性 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
class | 选填,类名(可以设置icon) | String | - | 任意 |
style | 选填,内联样式,自由设置样式 | [String,Object] | - | 任意 |
scroll | 选填,滚动条类型 | String | window | window,scroll,other |
size | 选填,滚动条的距离,scroll为scroll的时候起作用 | Number | 0 | 任意 |
右侧示例代码
window 默认滚动条
<template>
<div class="body-wrapper">
<Hometitle>PullLoadWindow</Hometitle>
<div class="wrapper-example wrapper-example-load-window">
<div class="wrapper-area-content" id="parent">
<ul>
<li v-for="(key, value) in data">
{{ value.message }} {{ key }}
</li>
</ul>
<Pullload scroll="window" :status.sync="status" @on-load="loaded"></Pullload>
</div>
</div>
</template>
<script>
import Hometitle from './common/hometitle.vue';
import {
Panel,
Pullload,
Button
} from 'mvui';
export default {
components: {
Hometitle,
Pullload,
Button
},
data() {
return {
status: 'ready',
data: [
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'}
]
}
},
methods: {
loaded: function(){
let self = this;
setTimeout(function(){
self.status = 'end';
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
}, 1000);
}
}
}
</script>
<style>
.wrapper-example-load-window .wrapper-area-content li {
height: 0.4rem;
line-height: 0.4rem;
border-bottom: solid 1px #ccc;
padding-left: 0.1rem;
color: #666;
}
.wrapper-example-load-window .wrapper-area-content li: last-child {
border-bottom-width: 0px;
}
.wrapper-example-load-window .wrapper-area-content .wrapper-area {
padding: 0px;
margin: 0px;
}
</style>
某元素默认滚动条
<template>
<div class="body-wrapper">
<Hometitle>PullLoadElem</Hometitle>
<div class="wrapper-example wrapper-example-load-elem">
<div class="wrapper-area-content" id="parent">
<ul>
<li v-for="(key, value) in data">
{{ value.message }} {{ key }}
</li>
</ul>
<Pullload scroll="other" :status.sync="status" @on-load="loaded"></Pullload>
</div>
</div>
</template>
<script>
import Hometitle from './common/hometitle.vue';
import {
Panel,
Scroll,
Pullload,
Button
} from 'mvui';
export default {
components: {
Hometitle,
Scroll,
Pullload,
Button
},
data() {
return {
status: 'ready',
data: [
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'}
]
}
},
methods: {
loaded: function(){
let self = this;
setTimeout(function(){
self.status = 'ready';
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
}, 1000);
}
}
}
</script>
<style>
.wrapper-example-load-elem {
position: fixed;
width: 100%;
height: 100%;
padding-top: 0.45rem;
top: 0px;
left: 0px;
border-top: solid 1px #ccc;
box-sizing: border-box;
}
.wrapper-example-load-elem .wrapper-area-content {
width: 100%;
height: 100%;
overflow: auto;
}
.wrapper-example-load-elem .wrapper-area-content li {
height: 0.4rem;
line-height: 0.4rem;
border-bottom: solid 1px #ccc;
padding-left: 0.1rem;
color: #666;
}
.wrapper-example-load-elem .wrapper-area-content li: last-child {
border-bottom-width: 0px;
}
.wrapper-example-load-elem .wrapper-area-content .wrapper-area {
padding: 0px;
margin: 0px;
}
</style>
scroll 滚动条
<template>
<div class="body-wrapper">
<Hometitle>PullLoadScroll</Hometitle>
<div class="wrapper-example wrapper-example-load-scroll">
<div class="wrapper-area-content" id="parent">
<Scroll :size.sync="size" :is-refresh.sync="isRefresh">
<div slot="down">我是down按钮</div>
<div slot="up">我是up按钮</div>
<div slot="load">我是loadding</div>
<ul>
<li v-for="(key, value) in data">
{{ value.message }} {{ key }}
</li>
</ul>
<Pullload scroll="scroll" :size.sync="size" :status.sync="status" @on-load="loaded"></Pullload>
</Scroll>
</div>
</div>
</template>
<script>
import Hometitle from './common/hometitle.vue';
import {
Panel,
Scroll,
Pullload,
Button
} from 'mvui';
export default {
components: {
Hometitle,
Scroll,
Pullload,
Button
},
data() {
return {
status: 'ready',
size: 0,
isRefresh: false,
data: [
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'},
{'message': '我是消息'}
]
}
},
methods: {
loaded: function(){
let self = this;
setTimeout(function(){
self.status = 'end';
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
self.data.push({'message': '我是消息'});
debugger;
self.isRefresh = true;
}, 1000);
}
}
}
</script>
<style>
.wrapper-example-load-scroll {
position: fixed;
width: 100%;
height: 100%;
padding-top: 0.45rem;
top: 0px;
left: 0px;
box-sizing: border-box;
}
.wrapper-example-load-scroll .wrapper-area-content {
width: 100%;
height: 100%;
overflow: hidden;
}
.wrapper-example-load-scroll .wrapper-area-content li {
height: 0.4rem;
line-height: 0.4rem;
border-bottom: solid 1px #ccc;
padding-left: 0.1rem;
color: #666;
}
.wrapper-example-load-scroll .wrapper-area-content li: last-child {
border-bottom-width: 0px;
}
.wrapper-example-load-scroll .wrapper-area-content .wrapper-area {
padding: 0px;
margin: 0px;
}
</style>