vueuse / motion

🤹 Vue Composables putting your components in motion
https://motion.vueuse.org
MIT License
2.27k stars 79 forks source link

How do you animate on leave/exit? #142

Open jetlej opened 1 year ago

jetlej commented 1 year ago

I don't see any mentions in the documentation. Is this possible to do?

StitiFatah commented 1 year ago

https://motion.vueuse.org/features/variants#leave

Soahr commented 1 year ago

I'm sorry but I can't get the leave variant to work with the demo .... Does someone can post a working full exemple ?

alexrichardsweb commented 1 year ago

Same here. Can't get any form of leave transition working. There is a link to an example demo in the docs but not example code (from what I can see).

I have found other examples but this is the only one using composition API https://codesandbox.io/s/vueuse-motion-playground-forked-61xpz?file=/src/components/Modal.vue:122-176 - I have replicated this but in a Nuxt 3 project, is there anything else required on top of the above example to get leave animations working with Nuxt 3?

gazreyn commented 1 year ago

Also been having issues trying to get it to work and what I have isn't perfect but it's just some observations I have.

<script setup lang="ts">
const myElement = ref<HTMLElement>();
const { leave, apply } = useMotion(lowerthird);

async function onEnter(_: HTMLElement, done: () => void) {
  await apply({
    y: 0,
    opacity: 1,
  });
  done();
}

async function onLeave(_: HTMLElement, done: () => void) {
  await apply({
    y: 100,
    opacity: 0,
  });
  leave(done);
}
</script>

<template>
  <Transition @enter="onEnter" @leave="onLeave">
    <div ref="myElement" v-if="isVisible" v-motion...></div>
  </Transition>
</template>
bernhardberger commented 2 days ago

I can't get @leave to work either..