실제 코드에는 좀 더 조건이 있지만, 간단하게 정리해보았습니다.
<template>
// 스크롤될 element
<div ref="scrollEl">
...
// 스크롤 아래로 내리면 사라질 element
<div class="mask-scroll" v-if="isMaskScroll">
...
</div>
</div>
<script>
import _throttle from 'lodash/throttle';
export default{
data() {
return {
scrollElScrollTop: 0,
}
},
computed: {
isMaskScroll() {
if(this.scrollElScrollTop > 50) return false;
else return true;
},
},
mounted() {
this.$nextTick(() => {
this.$refs.scrollEl.addEventListener('scroll', this.handleScroll);
});
},
beforeDestroy() {
this.$refs.scrollEl.removeEventListener('scroll', this.handleScroll);
},
methods: {
handleScroll: _throttle(function() {
this.scrollElScrollTop = this.$refs.scrollEl.scrollTop;
}, 100),