五分钟带你玩转vue(五)动画
        【摘要】 
                    Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。 包括以下工具: 
在 CSS 过渡和动画中自动应用 class可以配合使用第三方 CSS 动画库,如 Animate.css在过渡钩子函数中使用 JavaScript 直接操作 DOM可以配合使用第三方 JavaScript 动画库,如 Velocity.js
...
    
    
    
    Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。
 包括以下工具:
- 在 CSS 过渡和动画中自动应用 class
- 可以配合使用第三方 CSS 动画库,如 Animate.css
- 在过渡钩子函数中使用 JavaScript 直接操作 DOM
- 可以配合使用第三方 JavaScript 动画库,如 Velocity.js
下面简单做一下动画的实例
动画简单实例
隐藏显示
  
   - 
    
     
    
    
     
      app.vue
     
    
- 
    
     
    
    
     
      <template>
     
    
- 
    
     
    
    
       <div id="app">
     
    
- 
    
     
    
    
         <anim/>
     
    
- 
    
     
    
    
       </div>
     
    
- 
    
     
    
    
     
      </template>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      <script>
     
    
- 
    
     
    
    
     
      import anim from './components/anim.vue'
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      export default {
     
    
- 
    
     
    
    
       name: 'App',
     
    
- 
    
     
    
    
       components:{
     
    
- 
    
     
    
    
     
         anim
     
    
- 
    
     
    
    
     
        },
     
    
- 
    
     
    
    
     
        data () {
     
    
- 
    
     
    
    
       return {
     
    
- 
    
     
    
    
     
       }
     
    
- 
    
     
    
    
     
      },
     
    
- 
    
     
    
    
       methods: {
     
    
- 
    
     
    
    
     
         clickButton(event){
     
    
- 
    
     
    
    
          if(this.stutas ==HelloWorld){
     
    
- 
    
     
    
    
              this.stutas = HelloWorld2
     
    
- 
    
     
    
    
     
           }else{
     
    
- 
    
     
    
    
              this.stutas = HelloWorld
     
    
- 
    
     
    
    
     
           }
     
    
- 
    
     
    
    
     
         }
     
    
- 
    
     
    
    
     
      },
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      </script>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      <style>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      </style>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      Anim.vue
     
    
- 
    
     
    
    
     
      <template>
     
    
- 
    
     
    
    
     
      <div id="demo">
     
    
- 
    
     
    
    
       <button v-on:click="show = !show">
     
    
- 
    
     
    
    
     
          Toggle
     
    
- 
    
     
    
    
       </button>
     
    
- 
    
     
    
    
       <!-- 动画必备 -->
     
    
- 
    
     
    
    
       <transition name="demo">
     
    
- 
    
     
    
    
         <p v-if="show">hello</p>
     
    
- 
    
     
    
    
       </transition>
     
    
- 
    
     
    
    
     
      </div>
     
    
- 
    
     
    
    
     
      </template>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      <script>
     
    
- 
    
     
    
    
     
      export default {
     
    
- 
    
     
    
    
     
      name: 'anim',
     
    
- 
    
     
    
    
     
      data () {
     
    
- 
    
     
    
    
       return {
     
    
- 
    
     
    
    
         show: true
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      },
     
    
- 
    
     
    
    
     
      methods: {
     
    
- 
    
     
    
    
     
          clickButton(){
     
    
- 
    
     
    
    
     
          }
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      </script>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      <style>
     
    
- 
    
     
    
    
     
      .demo-enter-active, .demo-leave-active {
     
    
- 
    
     
    
    
       transition: opacity 5s;
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      .demo-enter, .demo-leave-to /* .fade-leave-active below version 2.1.8 */ {
     
    
- 
    
     
    
    
       opacity: 0;
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      </style>
     
    
 移动
  
   - 
    
     
    
    
     
      <template>
     
    
- 
    
     
    
    
     
      <div id="demo">
     
    
- 
    
     
    
    
       <button v-on:click="show = !show">
     
    
- 
    
     
    
    
     
          Toggle
     
    
- 
    
     
    
    
       </button>
     
    
- 
    
     
    
    
       <!-- 动画必备 -->
     
    
- 
    
     
    
    
       <transition name="demo">
     
    
- 
    
     
    
    
         <p class = "myDemo" v-if="show">hello</p>
     
    
- 
    
     
    
    
       </transition>
     
    
- 
    
     
    
    
     
      </div>
     
    
- 
    
     
    
    
     
      </template>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      <script>
     
    
- 
    
     
    
    
     
      export default {
     
    
- 
    
     
    
    
     
      name: 'anim',
     
    
- 
    
     
    
    
     
      data () {
     
    
- 
    
     
    
    
       return {
     
    
- 
    
     
    
    
         show: true
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      },
     
    
- 
    
     
    
    
     
      methods: {
     
    
- 
    
     
    
    
     
          clickButton(){
     
    
- 
    
     
    
    
     
          }
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      </script>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      <style>
     
    
- 
    
     
    
    
     
      .demo-enter-active, .demo-leave-active {
     
    
- 
    
     
    
    
     
          transition: all .5s ease;
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      .demo-enter, .demo-leave-to /* .fade-leave-active below version 2.1.8 */ {
     
    
- 
    
     
    
    
     
        transform: translateX(100px);;
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      .demo-enter-to, .demo-leave /* .fade-leave-active below version 2.1.8 */ {
     
    
- 
    
     
    
    
     
        transform: translateX(0px);;
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      .myDemo{
     
    
- 
    
     
    
    
     
        position:absolute;
     
    
- 
    
     
    
    
     
        left:50px
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      </style>
     
    
 使用第三方库
引入第三方库 https://daneden.github.io/animate.css/
index.html引入
  
   - 
    
     
    
    
     
      <!DOCTYPE html>
     
    
- 
    
     
    
    
     
      <html>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      <head>
     
    
- 
    
     
    
    
         <meta charset="utf-8">
     
    
- 
    
     
    
    
         <meta name="viewport" content="width=device-width,initial-scale=1.0">
     
    
- 
    
     
    
    
         <link href="https://cdn.jsdelivr.net/npm/animate.css@3.5.1" rel="stylesheet" type="text/css">
     
    
- 
    
     
    
    
         <title>project</title>
     
    
- 
    
     
    
    
     
      </head>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      <body>
     
    
- 
    
     
    
    
         <div id="app"></div>
     
    
- 
    
     
    
    
         <!-- built files will be auto injected -->
     
    
- 
    
     
    
    
     
      </body>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      </html>
     
    
 引入div 多种样式可以参考文档 也可以去https://daneden.github.io/animate.css/寻找动画
  
   - 
    
     
    
    
     
      <template>
     
    
- 
    
     
    
    
     
      <div id="example-3">
     
    
- 
    
     
    
    
       <button @click="show = !show">
     
    
- 
    
     
    
    
     
          Toggle render
     
    
- 
    
     
    
    
       </button>
     
    
- 
    
     
    
    
       <transition
     
    
- 
    
     
    
    
         name="custom-classes-transition"
     
    
- 
    
     
    
    
         enter-active-class="animated zoomOutRight"
     
    
- 
    
     
    
    
         leave-active-class="animated fadeInDownBig"
     
    
- 
    
     
    
    
     
        >
     
    
- 
    
     
    
    
         <p v-if="show">hello</p>
     
    
- 
    
     
    
    
       </transition>
     
    
- 
    
     
    
    
     
      </div>
     
    
- 
    
     
    
    
     
      </template>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      <script>
     
    
- 
    
     
    
    
     
      export default {
     
    
- 
    
     
    
    
     
      name: 'anim',
     
    
- 
    
     
    
    
     
      data () {
     
    
- 
    
     
    
    
       return {
     
    
- 
    
     
    
    
         show: true
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      },
     
    
- 
    
     
    
    
     
      methods: {
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      </script>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      <style>
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      </style>
     
    
 文章来源: baocl.blog.csdn.net,作者:小黄鸡1992,版权归原作者所有,如需转载,请联系作者。
原文链接:baocl.blog.csdn.net/article/details/104729177
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)