前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >(四)处理组件进场和离场动画 <Transition />

(四)处理组件进场和离场动画 <Transition />

作者头像
老怪兽
发布2023-02-22 18:54:49
发布2023-02-22 18:54:49
27100
代码可运行
举报
运行总次数:0
代码可运行

使用 vue 处理组件进场和离场动画

说明

我们先来看一下啊 <Transition /> 的作用

代码语言:javascript
代码运行次数:0
复制
<!-- 如果我们把一个组件 或者是html元素 放到 Transition 这个标签里面 那么里面的组件会在元素挂载和卸载的时候自动应用或者是移除一些class类名 -->
<Transition>
  <div v-if="show" class="box"></div>
</Transition>

<!-- Transition 还接收一个名字 -->
<Transition name="zsw">
  <div v-if="show" class="box"></div>
</Transition>
<!-- 当上面那个标签设置了名字的时候,vue默认的class名字的 v 就会变成以设置的那个名字开头 -->
<style>
  /* 变成以自定义的name 开头的class */
  zsw-enter-from {}
  zsw-enter-to {}
  zsw-enter-active {}
</style>

具体 class 样式参考下表

说明

v-enter-activev-leave-active 会一直啊在 toform 一直存在

代码语言:javascript
代码运行次数:0
复制
<template>
  <main>
    <div class="container">
      <button @click="show = !show">
        {{ show ? "隐藏" : "显示" }}
      </button>
      <!-- 自定义一个名字 zsw Transition 这个组件需要引入-->
      <Transition name="zsw">
        <div v-if="show" class="box"></div>
      </Transition>
    </div>
  </main>
</template>

<script setup>
  import { ref, Transition } from "vue";
  const show = ref(false);
</script>

<style>
/* 进入页面之前的状态 */
.zsw-enter-from{
  opacity: 0;
}
/* 进入页面中的样式 会在 from 和 to 之间一直存在 */
/* 设置不同的进场参数 */
.zsw-enter-active{
  transition: all 0.3s ease-in-out;
  animation: scale 0.3s ease-in-out;
}
/* 进入页面之后的状态 */
.zsw-enter-to{
  opacity: 1;
}

/* 离开页面之前的状态 */
.zsw-leave-form{
  opacity: 1;
}
/* 离开页面中的样式 会在 from 和 to 之间一直存在 */
/* 设置不同的离场参数 */
.zsw-leave-active{
  transition: all 0.3s ease-in;
  animation: scale 0.3s ease-in reverse;
}
/* 离开页面后的状态 */
.zsw-leave-to{
  opacity: 0;
}

/* 自定义动画 */
/* 在 xxx-enter/leave-active 之中使用 */
@keyframes scale {
  0%{
    transform: scale(0),
  }
  33%{
    transform: scale(1.1);
  }
  66%{
    transform: scale(0.9);
  }
  33%{
    transform: scale(1);
  }
}
</style>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年11月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用 vue 处理组件进场和离场动画
  • 具体 class 样式参考下表
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档