添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
(Vue动效)1.Vue的CSS过渡动效

(Vue动效)1.Vue的CSS过渡动效

关键词: <transition></transition> 的使用

一、按钮 控制 页面展示与否

<body>
  <div id="root">
    <div v-if="show">hello miya</div>
    <button @click="handleClick">切换</button>
  <script>
    var vm = new Vue({
      el: '#root',
      data: {
	show: true
      methods: {
        handleClick: function(){
         this.show = !this.show  //按钮控制页面的展示与否
  </script>
</body>

二、页面效果渐隐渐现(动画)的效果

1、使用

<transition></transition> 所包裹的内容会有一个动画效果

2、场景

当一个dom元素标签被 <transition></transition> 包裹后,Vue会自动分析元素的CSS样式,然后构建一个显示/隐藏的动画流程,如图:

显示的动画流程
隐藏的动画流程

通过在某一时刻自动在div元素上增加一些class的底层原理,即使用 <transition></transition>, Vue帮助我们实现了CSS过渡效果。主要通过CSS3中 <transition> 属性的形式来实现。

代码如下:

<!DOCTYPE html>
<html lang="en">
   <meta charset="UTF-8">
   <title>Vue中的CSS动画原理——过渡动效</title>
   <script src='./vue.js'></script>
   <style>
    .fade-enter,.fade-leave-to {
       opacity: 0; /*点击按钮页面即将被显示,此时div标签处于隐藏状态*/
    .fade-enter-active,.fade-leave-active  {  
        transition: opacity 3s; /* 对该CSS样式进行transition的监控,有3s的过渡*/ 
   </style>
</head>
  <div id="root">
    <transition name="fade">
       <div v-if="show">hello miya</div>
    </transition>
    <button @click="handleClick">切换</button>
  <script>
   var vm = new Vue({
      el: '#root',
      data: {
	show: true
      methods: {
	handleClick: function(){
	  this.show = !this.show //按钮控制页面的展示与否
  </script>
 </body>
</html>

3、注意

(1) <transition> 中calss属性名可带或可不带。不带的话,样式直接就是在前面加上 v-xxx

<style>
   .v-enter,.v-leave-to {
      opacity: 0; /*点击按钮页面即将被显示,此时div标签处于隐藏状态*/
   .v-enter-active,.v-leave-active  {  
      transition: opacity 3s; /* 对该CSS样式进行transition的监控,有3s的过渡*/ 
</style>
<div id="root">
  <transition>
    <div v-if="show">hello miya</div>
  </transition>
  <button @click="handleClick">切换</button>
</div>

(2)被CSS3属性 <transition> 包裹的dom标签,修改 v-if v-show 指令 控制显示/隐藏 均带动画效果。

代码如下:

<transition>