2018-04-28 17:56:03 -04:00
|
|
|
<template lang="html">
|
|
|
|
<div
|
2019-05-16 20:24:34 -04:00
|
|
|
ref="scroller"
|
2018-04-28 17:56:03 -04:00
|
|
|
:class="classes"
|
|
|
|
:data-simplebar-auto-hide="autoHide"
|
|
|
|
:data-simplebar-scrollbar-min-size="scrollbarMinSize"
|
|
|
|
data-simplebar
|
|
|
|
class="scrollable-area"
|
2019-05-16 20:24:34 -04:00
|
|
|
@scroll="onScroll"
|
2018-04-28 17:56:03 -04:00
|
|
|
>
|
|
|
|
<div class="simplebar-scroll-content">
|
|
|
|
<div class="simplebar-content">
|
|
|
|
<slot />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
|
|
export default {
|
|
|
|
props: {
|
|
|
|
classes: String,
|
|
|
|
autoHide: {
|
|
|
|
type: Boolean,
|
|
|
|
default: true
|
|
|
|
},
|
|
|
|
scrollbarMinSize: {
|
|
|
|
type: Number,
|
|
|
|
default: 10
|
|
|
|
}
|
2019-05-16 20:24:34 -04:00
|
|
|
},
|
|
|
|
|
2022-12-07 16:52:07 -05:00
|
|
|
mounted() {
|
|
|
|
const scroller = this.$refs.scroller;
|
|
|
|
if (!scroller || ! window.ffzSimplebar || scroller.SimpleBar)
|
|
|
|
return;
|
|
|
|
|
|
|
|
new ffzSimplebar(scroller, ffzSimplebar.getElOptions(scroller));
|
|
|
|
},
|
|
|
|
|
2019-05-16 20:24:34 -04:00
|
|
|
methods: {
|
|
|
|
onScroll() {
|
|
|
|
// We do this to avoid the scroll position getting screwed up on
|
|
|
|
// an element that should never scroll. Thanks, web browsers.
|
|
|
|
const scroller = this.$refs.scroller;
|
|
|
|
if ( ! scroller || scroller.scrollTop == 0 )
|
|
|
|
return;
|
|
|
|
|
|
|
|
scroller.scrollTop = 0;
|
|
|
|
}
|
2018-04-28 17:56:03 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
</script>
|