ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vue3 VueRouter 过度动画

2021-09-02 12:01:11  阅读:199  来源: 互联网

标签:动画 样式 使用 VueRouter Vue3 组件 div 页面


App.vue 默认这样使用路由 

 <router-view />

使用过度动画需要改成这样

  <router-view v-slot="{ Component }">
    <transition 
      enter-active-class="animate__animated animate__fadeIn" 
      leave-active-class="animate__animated animate__fadeOut">
      <component :is="Component" />
    </transition>
  </router-view>

这里是使用了 Vue 提供了 transition 的封装组件,在下列情形中,可以给任何元素和组件添加进入/离开过渡

  • 条件渲染 (使用 v-if)
  • 条件展示 (使用 v-show)
  • 动态组件  
  • 组件根节点

 

重点,做Router切换动画,需要用 div 包裹 router-view

div 设置为 position: relative; router-view 设置为 position: absolute;

  <div style="position: relative; height: 100%; width: 100%; perspective: 1200px;">
    <router-view v-slot="{ Component }" style="position: absolute; height: 100%; width: 100%;">
      <transition 
        enter-active-class="animate__animated animate__bounceInRight animate__delay-1s"
        leave-active-class="animate__animated animate__bounceOutLeft">
        <component :is="Component" />
      </transition>
    </router-view>
  </div>

这样路由页面切换时,div 标签内会同时有,当前页面和 要 切换的页面,具体F12自己体会

enter-active-class:新页面进入样式
leave-active-class:旧页面退出样式

这里使用了animate.css动画库, 默认进入和退出是同时执行的,我们在进入样式内添加 animate__delay-1s 延迟1秒执行

 

标签:动画,样式,使用,VueRouter,Vue3,组件,div,页面
来源: https://www.cnblogs.com/ghostnet/p/15218132.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有