Skip to content

Commit 219457b

Browse files
committed
Use vue-observe-visibility
1 parent 686f027 commit 219457b

File tree

7 files changed

+31
-12
lines changed

7 files changed

+31
-12
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ Smooth scroll with any amount of data ([demo](https://akryum.github.io/vue-virtu
1616
```
1717
npm install --save vue-virtual-scroller
1818
```
19+
20+
**⚠️ `vue-virtual-scroller` now uses [vue-observe-visibility](https://github.com/Akryum/vue-observe-visibility) to automatically refresh itself when shown to prevent display glitches. This means you need to include the polyfills needed by `vue-observe-visibility` for this to work.**
21+
1922
## Default import
2023

2124
Install all the components:

dist/vue-virtual-scroller.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,7 @@
2424
display: block;
2525
overflow: hidden;
2626
}
27+
28+
.test h1[data-v-5ee0142a] {
29+
color: #40b883;
30+
}

dist/vue-virtual-scroller.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/build.js

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/build.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "vue-virtual-scroller",
33
"description": "Smooth scrolling for any amount of data",
4-
"version": "0.3.0",
4+
"version": "0.4.0",
55
"author": {
66
"name": "Guillaume Chau",
77
"email": "guillaume.b.chau@gmail.com"
@@ -51,6 +51,7 @@
5151
"webpack-merge": "^1.1.2"
5252
},
5353
"dependencies": {
54+
"vue-observe-visibility": "^0.1.1",
5455
"vue-resize": "^0.1.0"
5556
}
5657
}

src/components/VirtualScroller.vue

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<component :is="mainTag" class="virtual-scroller" @scroll="updateVisibleItems">
2+
<component :is="mainTag" class="virtual-scroller" @scroll="updateVisibleItems" v-observe-visibility="handleVisibilityChange">
33
<component :is="containerTag" class="item-container" :style="itemContainerStyle">
44
<component :is="contentTag" class="items" :style="itemsStyle">
55
<template v-if="renderers">
@@ -16,6 +16,7 @@
1616

1717
<script>
1818
import { ResizeObserver } from 'vue-resize'
19+
import { ObserveVisibility } from 'vue-observe-visibility'
1920
2021
export default {
2122
name: 'virtual-scroller',
@@ -24,6 +25,10 @@ export default {
2425
ResizeObserver,
2526
},
2627
28+
directives: {
29+
ObserveVisibility,
30+
},
31+
2732
props: {
2833
items: {
2934
type: Array,
@@ -101,6 +106,12 @@ export default {
101106
scrollToItem (index) {
102107
this.$el.scrollTop = index * this.itemHeight
103108
},
109+
110+
handleVisibilityChange (isVisible) {
111+
if (isVisible) {
112+
this.updateVisibleItems()
113+
}
114+
},
104115
},
105116
106117
mounted () {

0 commit comments

Comments
 (0)