vue移动端转场动画

Posted zxuedong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue移动端转场动画相关的知识,希望对你有一定的参考价值。

vue移动端转场动画

 

1.介绍:使用vue移动端做项目的时候,为了用户的体验良好,我们需要页面有一种进入和转出的效果

// 在App.vue根组件中

<template>

  <div id="app">

    <transition :name="transitionName">
      <router-view />
    </transition>

  </div>

</template>

 

<script>

export default {


    data () {

        return {

            transitionName: ‘slide-left‘
        }
    },

    watch: {

        $route (to, from) {

            // 通过判断路由自定义的级别来判断是转入还是转出

            if (to.meta.level > from.meta.level) {

                this.transitionName = ‘slide-left‘
            } else {

                this.transitionName = ‘slide-right‘
            }
        }
    }
    
}

</script>

 

// router/index.js

const routes = [

  {
    path: ‘/test‘,
    name: ‘test‘,
    component: () => import(‘@/views/test‘),
    meta: {

     // 自定义路由的级别
      level: 24
    }
  },
  {
    path: ‘/keep1‘,
    name: ‘keep1‘,
    component: () => import(‘../views/keep1‘),
    meta: {
      level: 12
    }
  },
  {
    path: ‘/keep2‘,
    name: ‘keep2‘,
    component: () => import(‘../views/keep2‘),
    alias: ‘/app‘,
    meta: {
      level: 6
    }
  }

]

 

/*
    动画样式
    will-change: transform    优化渲染速度
*/

.slide-right-enter-active,
.slide-right-leave-active,
.slide-left-enter-active,
.slide-left-leave-active {

 will-change: transform;
 transition: all 0.5s;
 width: 100%;
 position: absolute;
}
.slide-right-enter {
 opacity: 0;
 transform: translate3d(-100%, 0, 0);
}
.slide-right-leave-active {
 opacity: 0;
 transform: translate3d(100%, 0, 0);
}
.slide-left-enter {
 opacity: 0;
 transform: translate3d(100%, 0, 0);
}
.slide-left-leave-active {
 opacity: 0;
 transform: translate3d(-100%, 0, 0);
}

 

以上是关于vue移动端转场动画的主要内容,如果未能解决你的问题,请参考以下文章

vue-router自动判断左右翻页转场动画

Vue仿微信app页面跳转动画

vue为v-if添加过渡动画效果

vue开发移动端项目 过渡动画问题

vue 移动端怎么滚动才能滚动呢?手机端不能滚动怎么办?

使用转场动画构造侧滑