五分钟带你玩转vue(五)动画

举报
小鲍侃java 发表于 2021/09/10 23:25:08 2021/09/10
2.6k+ 0 0
【摘要】 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

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。