vue3实现动画:transition

100 阅读1分钟

当插入或删除包含在 transition 组件中的元素时,Vue 将会做以下处理:

1.自动嗅探目标元素是否应用了CSS过渡或者动画,如果有,那么在恰当的时机添加/删除 CSS类名;

2.如果 transition 组件提供了JavaScript钩子函数,这些钩子函数将在恰当的时机被调用; 

3.如果没有找到JavaScript钩子并且也没有检测到CSS过渡/动画,DOM插入、删除操作将会立即执行。

template代码:

<template>  <div class="app">    <div>      <button @click="isShow = !isShow">显示/隐藏</button>    </div>    <transition name="why" type="transition" :duration="{enter:800,leave:1000}">      <h2 v-if="isShow">hello world</h2>    </transition>  </div></template>

css代码:

.app {  
    width: 200px;  
    margin: 0 auto;
}
h2 {  
    display: inline-block;
}.why-enter-form,.why-leave-to {  opacity: 0;}.why-enter-active,.why-leave-active {  transition: opacity 1s ease;}.why-enter-active {  animation: bounce 1s ease;}.why-leave-active {  animation: bounce 1s ease reverse;}@keyframes bounce {  0% {    transform: scale(0);  }  50% {    transform: scale(1.2);  }  100% {    transform: scale(1);  }}