zoukankan      html  css  js  c++  java
  • Vue-admin工作整理(七):路由的切换动效

    • 思路就是通过 transition-group 这个组件来对多组件进行控制,效果是通过样式来写,transition-group要有指定的key值,样式中通过name来命名类的名字
    <template>
      <div id="app">
        <div id="nav">
          <router-link :to="{ name: 'home' }">Home</router-link> |
          <router-link :to="{ name: 'about' }">About</router-link>
        </div>
        <transition-group name= 'router'>
        <router-view key="default"/>
        <router-view key="email" name="email"/>
        <router-view key="tel" name="tel"/>
        </transition-group>
      </div>
    </template>
    
    <style lang="less">
    .router-enter {
      //页面进入时:即将要加载的时候,透明度是0
      opacity: 0;
    }
    .router-enter-active {
      //页面进入时:组件从没有到有的动态效果
      transition: opacity 1s ease;
    }
    .router-enter-to {
      //页面进入时:页面完全显示之后的状态
      opacity: 1;
    }
    .router-leave {
      //页面离开时:即将要加载的时候,透明度是0
      opacity: 1;
    }
    .router-leave-active {
      //页面离开时:组件从没有到有的动态效果
      transition: opacity 1s ease;
    }
    .router-leave-to {
      //页面离开时:页面完全显示之后的状态
      opacity: 0;
    }
    #app {
      font-family: "Avenir", Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
    }
    #nav {
      padding: 30px;
      a {
        font-weight: bold;
        color: #2c3e50;
        &.router-link-exact-active {
          color: #42b983;
        }
      }
    }
    </style>
    • 继续深入一下效果的实现:就是路由中存在某个参数效果再去呈现,实现思路:增加watch监听,来查看当前实例的路由参数数据,如果存在指定的URL路由参数,那么就执行特效
    <template>
      <div id="app">
        <div id="nav">
          <router-link :to="{ name: 'home' }">Home</router-link> |
          <router-link :to="{ name: 'about' }">About</router-link>
        </div>
        <transition-group :name= 'routerTransition'>
        <router-view key="default"/>
        <router-view key="email" name="email"/>
        <router-view key="tel" name="tel"/>
        </transition-group>
      </div>
    </template>
    <script>
    export default {
      data () {
        return {
          routerTransition: ''
        }
      },
      watch: {
        // 当前实例中存在routerTransitionName特效才会生效
        '$route' (to) {
          to.query && to.query.routerTransitionName && (this.routerTransition = to.query.routerTransitionName)
        }
      }
    }
    </script>
    
    <style lang="less">
    .router-enter {
      //页面进入时:即将要加载的时候,透明度是0
      opacity: 0;
    }
    .router-enter-active {
      //页面进入时:组件从没有到有的动态效果
      transition: opacity 1s ease;
    }
    .router-enter-to {
      //页面进入时:页面完全显示之后的状态
      opacity: 1;
    }
    .router-leave {
      //页面离开时:即将要加载的时候,透明度是0
      opacity: 1;
    }
    .router-leave-active {
      //页面离开时:组件从没有到有的动态效果
      transition: opacity 1s ease;
    }
    .router-leave-to {
      //页面离开时:页面完全显示之后的状态
      opacity: 0;
    }
    #app {
      font-family: "Avenir", Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
    }
    #nav {
      padding: 30px;
      a {
        font-weight: bold;
        color: #2c3e50;
        &.router-link-exact-active {
          color: #42b983;
        }
      }
    }
    </style>

     

  • 相关阅读:
    225. 用队列实现栈
    232. 用栈实现队列
    459.重复的子字符串(简单)
    28. 实现 strStr()(简单)
    剑指 Offer 58
    541. 反转字符串 II(简单)
    浏览器渲染页面的过程、重绘、重排以及页面优化
    隐藏一个元素的几种方法
    当我们在浏览器中输入一个URL后,发生了什么?
    Object.create() 和 new Object()、{} 的区别
  • 原文地址:https://www.cnblogs.com/cristin/p/9590098.html
Copyright © 2011-2022 走看看