File tree Expand file tree Collapse file tree 2 files changed +20
-7
lines changed Expand file tree Collapse file tree 2 files changed +20
-7
lines changed Original file line number Diff line number Diff line change 3
3
<VirtualList
4
4
:itemHeight =" 30"
5
5
:remainItems =" 10"
6
- v-on:toBottom =" onBottom"
6
+ :onScroll =" onListScroll"
7
+ v-on:end =" onEnd"
7
8
>
8
9
<Item v-for =" item in items" :item =" item" :key =" $index" />
9
10
</VirtualList >
28
29
29
30
data () {
30
31
return {
31
- items: fetchData (100 )
32
+ items: fetchData (20000 )
32
33
}
33
34
},
34
35
35
36
methods: {
36
- onBottom () {
37
+ onEnd () {
37
38
// let list = fetchData(20);
38
39
// if (list.length) {
39
40
// this.items = this.items.concat(list);
40
41
// }
42
+ },
43
+
44
+ onListScroll (offset , e ) {
45
+ console .log (offset, e)
41
46
}
42
47
}
43
48
}
Original file line number Diff line number Diff line change @@ -10,7 +10,8 @@ const VirtualList = Vue.component('vue-virtual-scroll-list', {
10
10
remainItems : {
11
11
type : Number ,
12
12
required : true
13
- }
13
+ } ,
14
+ onScroll : Function
14
15
} ,
15
16
16
17
// an object helping to calculate
@@ -25,8 +26,14 @@ const VirtualList = Vue.component('vue-virtual-scroll-list', {
25
26
} ,
26
27
27
28
methods : {
28
- onScroll ( ) {
29
- this . updateZone ( this . $refs . container . scrollTop ) ;
29
+ handleScroll ( e ) {
30
+ let scrollTop = this . $refs . container . scrollTop ;
31
+
32
+ this . updateZone ( scrollTop ) ;
33
+
34
+ if ( this . onScroll ) {
35
+ this . onScroll ( e , scrollTop ) ;
36
+ }
30
37
} ,
31
38
32
39
updateZone ( offset ) {
@@ -41,6 +48,7 @@ const VirtualList = Vue.component('vue-virtual-scroll-list', {
41
48
if ( overs + this . remainItems >= delta . total ) {
42
49
end = delta . total ;
43
50
start = delta . total - delta . keeps ;
51
+ this . $emit ( 'end' ) ;
44
52
}
45
53
46
54
delta . end = end ;
@@ -85,7 +93,7 @@ const VirtualList = Vue.component('vue-virtual-scroll-list', {
85
93
'height' : viewHeight + 'px'
86
94
} ,
87
95
'on' : {
88
- 'scroll' : this . onScroll
96
+ 'scroll' : this . handleScroll
89
97
}
90
98
} , [
91
99
createElement ( 'div' , {
You can’t perform that action at this time.
0 commit comments