vue中的过渡css

应用于vue中组件的进入、离开时添加过渡

适用于:v-if/v-show的组件、动态组件、组件根节点

通过一个简单的例子来解释,首先通过脚手架创建一个项目

在首页设置两个router-link 用于跳转界面

<template>
  <div id="app">
    <div>
      <router-link to="/about" tag="button">to-about</router-link>
	  <router-link to="/home" tag="button">to-home</router-link>
    </div>
		<router-view></router-view> 
  </div>
</template>

<script>
export default {
  name: 'app',
  data(){
	return{
		
	}  
  },
  components: {
  },
  methods:{
  }
}
</script>

<style>

</style>

然后做两个简单的路由页面home和about并注册好,内容就一行字

<template>
  <div class="about">
    <h1>This is an about page</h1>
//home页面就是 this is a home page
  </div>
</template>

如果想要添加过渡效果,就要使用transition标签包裹住目标dom元素,并给标签添加name

<template>
  <div id="app">
    <div>
      <router-link to="/about" tag="button">to-about</router-link>
	  <router-link to="/home" tag="button">to-home</router-link>
    </div>
      <transition name="test">
		<router-view></router-view> 
      </transition>
  </div>
</template>

<script>
export default {
  name: 'app',
  data(){
	return{
		
	}  
  },
  components: {
  },
  methods:{
  }
}
</script>

<style>

</style>

通过vue官网可得知,过渡过程中有几种状态,分别是

v-enter    v-enter-active   v-enter-to    v-leave   v-leave-active  v-leave-to

如果给transition标签添加了name值,那么上面的写法就要修改为 “.name-enter  .name-leave”等

其实这些状态可以向理解生命周期一样去理解,下面给一张官网的图,图里展示的是dom元素透明度在展示、不展示间切换的过渡

vue中的过渡css

  1. v-enter:定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。

  2. v-enter-active:定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡/动画完成之后移除。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。

  3. v-enter-to2.1.8 版及以上定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时 v-enter 被移除),在过渡/动画完成之后移除。

  4. v-leave:定义离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除。

  5. v-leave-active:定义离开过渡生效时的状态。在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,在过渡/动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。

  6. v-leave-to2.1.8 版及以上定义离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时 v-leave 被删除),在过渡/动画完成之后移除。

那么应用到刚刚我们写的简单页面 只需要在style里写入以下内容即可达成:不展示时1s逐渐透明,展示时1s逐渐实体

.test-enter,.test-leave-to{
	opacity: 0;
}
.test-enter-to,.test-leave{
	opacity: 1;                                                                                                                                                                                                                                                                                                                                                                                                                                      
}
.test-enter-active,.test-leave-active{
	transition:all 1s;
}

上一篇:一次向github开源项目提交自己的代码(pr)的详细步骤:


下一篇:vue自带的动画效果