29 lines
673 B
HTML
29 lines
673 B
HTML
|
<div class="virtual-list-item"
|
||
|
ref:node
|
||
|
style="transform: translate3d(0, {{virtualOffset}}px, 0);"
|
||
|
data-virtual-index="{{virtualIndex}}">
|
||
|
<:Component {component} :virtualProps :virtualIndex :intersectionObserver />
|
||
|
</div>
|
||
|
<style>
|
||
|
.virtual-list-item {
|
||
|
position: absolute;
|
||
|
top: 0;
|
||
|
will-change: transform;
|
||
|
}
|
||
|
</style>
|
||
|
<script>
|
||
|
export default {
|
||
|
oncreate() {
|
||
|
this.observe('intersectionObserver', (intersectionObserver) => {
|
||
|
if (intersectionObserver) {
|
||
|
intersectionObserver.observe(this.refs.node)
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
methods: {
|
||
|
showRefs () {
|
||
|
console.log(this.refs)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|