fix scroll-reveal-component problems

This commit is contained in:
chuan_wuhao 2022-09-29 15:20:56 +08:00
parent 2e63c1df5e
commit 862f357340

View File

@ -6,29 +6,56 @@ const RayScrollReveal = defineComponent({
name: 'RayScrollReveal',
props: {
options: {
// ScrollReveal reveal options
type: Object as PropType<scrollReveal.ScrollRevealObjectOptions>,
},
width: {
type: String,
},
reset: {
type: Boolean,
default: false,
},
},
emits: ['scrollRevealSync'],
setup(props, { emit }) {
const scrollRevealRef = ref<HTMLElement>()
const cssVarsRef = computed(() => {
const scsVars = {
'--ray-scroll-reveal-width': props.width,
}
return scsVars
})
let scrollRevealCore: scrollReveal.ScrollRevealObject
/**
*
* `dom` `ScrollReveal`
*/
const handleRegisterScrollReveal = async () => {
const el = scrollRevealRef.value as HTMLElement
const defaultOptions = {
distance: '50px',
duration: 600,
reset: true,
reset: props.reset,
easing: 'ease',
scale: 0.99,
mobile: true,
}
ScrollReveal().reveal(el, Object.assign(defaultOptions, props.options))
scrollRevealCore = ScrollReveal().reveal(
el,
Object.assign(defaultOptions, props.options),
)
}
/**
*
* `dom`
*/
const handleScrollRevealSync = async () => {
const { sync } = ScrollReveal()
const { sync } = scrollRevealCore
emit('scrollRevealSync', sync)
}
@ -40,11 +67,16 @@ const RayScrollReveal = defineComponent({
return {
scrollRevealRef,
cssVarsRef,
}
},
render() {
return (
<div class="ray-scroll-reveal" ref="scrollRevealRef">
<div
class="ray-scroll-reveal"
ref="scrollRevealRef"
style={this.cssVarsRef}
>
{this.$slots.default?.()}
</div>
)