Skip to content

Instantly share code, notes, and snippets.

@christopher4lis
Created January 22, 2020 03:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save christopher4lis/2651969e1368d6b77e790a0230824e31 to your computer and use it in GitHub Desktop.
Save christopher4lis/2651969e1368d6b77e790a0230824e31 to your computer and use it in GitHub Desktop.
<template>
<Transition
name="fade-translate"
mode="out-in"
:css="false"
@before-enter="beforeEnter"
@enter="enter"
@leave="leave"
>
<slot />
</Transition>
</template>
<script>
import gsap from 'gsap'
export default {
name: 'FadeInOut',
props: {
fadeInTime: { type: Number, default: 0.5 },
fadeOutTime: { type: Number, default: 0.35 },
fadeOutDelay: { type: Number, default: 0 }
},
data() {
return {
height: null
}
},
methods: {
beforeEnter(element) {
gsap.set(element, {
opacity: 0
})
},
enter(element, done) {
gsap.to(element, {
duration: this.fadeInTime,
opacity: 1,
ease: 'expo',
onComplete: done
})
},
leave(el, done) {
gsap.to(el, {
duration: this.fadeInTime,
ease: 'expo',
delay: this.fadeOutDelay,
opacity: 0,
onComplete: done
})
}
}
}
</script>
<style lang="scss"></style>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment