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

举报
小鲍侃java 发表于 2021/09/10 23:25:08 2021/09/10
【摘要】 Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。 包括以下工具: 在 CSS 过渡和动画中自动应用 class可以配合使用第三方 CSS 动画库,如 Animate.css在过渡钩子函数中使用 JavaScript 直接操作 DOM可以配合使用第三方 JavaScript 动画库,如 Velocity.js ...

Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。
包括以下工具:

  • 在 CSS 过渡和动画中自动应用 class
  • 可以配合使用第三方 CSS 动画库,如 Animate.css
  • 在过渡钩子函数中使用 JavaScript 直接操作 DOM
  • 可以配合使用第三方 JavaScript 动画库,如 Velocity.js

下面简单做一下动画的实例

动画简单实例

隐藏显示


  
  1. app.vue
  2. <template>
  3. <div id="app">
  4. <anim/>
  5. </div>
  6. </template>
  7. <script>
  8. import anim from './components/anim.vue'
  9. export default {
  10. name: 'App',
  11. components:{
  12. anim
  13. },
  14. data () {
  15. return {
  16. }
  17. },
  18. methods: {
  19. clickButton(event){
  20. if(this.stutas ==HelloWorld){
  21. this.stutas = HelloWorld2
  22. }else{
  23. this.stutas = HelloWorld
  24. }
  25. }
  26. },
  27. }
  28. </script>
  29. <style>
  30. </style>
  31. Anim.vue
  32. <template>
  33. <div id="demo">
  34. <button v-on:click="show = !show">
  35. Toggle
  36. </button>
  37. <!-- 动画必备 -->
  38. <transition name="demo">
  39. <p v-if="show">hello</p>
  40. </transition>
  41. </div>
  42. </template>
  43. <script>
  44. export default {
  45. name: 'anim',
  46. data () {
  47. return {
  48. show: true
  49. }
  50. },
  51. methods: {
  52. clickButton(){
  53. }
  54. }
  55. }
  56. </script>
  57. <style>
  58. .demo-enter-active, .demo-leave-active {
  59. transition: opacity 5s;
  60. }
  61. .demo-enter, .demo-leave-to /* .fade-leave-active below version 2.1.8 */ {
  62. opacity: 0;
  63. }
  64. </style>

移动


  
  1. <template>
  2. <div id="demo">
  3. <button v-on:click="show = !show">
  4. Toggle
  5. </button>
  6. <!-- 动画必备 -->
  7. <transition name="demo">
  8. <p class = "myDemo" v-if="show">hello</p>
  9. </transition>
  10. </div>
  11. </template>
  12. <script>
  13. export default {
  14. name: 'anim',
  15. data () {
  16. return {
  17. show: true
  18. }
  19. },
  20. methods: {
  21. clickButton(){
  22. }
  23. }
  24. }
  25. </script>
  26. <style>
  27. .demo-enter-active, .demo-leave-active {
  28. transition: all .5s ease;
  29. }
  30. .demo-enter, .demo-leave-to /* .fade-leave-active below version 2.1.8 */ {
  31. transform: translateX(100px);;
  32. }
  33. .demo-enter-to, .demo-leave /* .fade-leave-active below version 2.1.8 */ {
  34. transform: translateX(0px);;
  35. }
  36. .myDemo{
  37. position:absolute;
  38. left:50px
  39. }
  40. </style>

使用第三方库

引入第三方库 https://daneden.github.io/animate.css/

index.html引入


  
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1.0">
  6. <link href="https://cdn.jsdelivr.net/npm/animate.css@3.5.1" rel="stylesheet" type="text/css">
  7. <title>project</title>
  8. </head>
  9. <body>
  10. <div id="app"></div>
  11. <!-- built files will be auto injected -->
  12. </body>
  13. </html>

引入div 多种样式可以参考文档 也可以去https://daneden.github.io/animate.css/寻找动画


  
  1. <template>
  2. <div id="example-3">
  3. <button @click="show = !show">
  4. Toggle render
  5. </button>
  6. <transition
  7. name="custom-classes-transition"
  8. enter-active-class="animated zoomOutRight"
  9. leave-active-class="animated fadeInDownBig"
  10. >
  11. <p v-if="show">hello</p>
  12. </transition>
  13. </div>
  14. </template>
  15. <script>
  16. export default {
  17. name: 'anim',
  18. data () {
  19. return {
  20. show: true
  21. }
  22. },
  23. methods: {
  24. }
  25. }
  26. </script>
  27. <style>
  28. </style>

 

文章来源: baocl.blog.csdn.net,作者:小黄鸡1992,版权归原作者所有,如需转载,请联系作者。

原文链接:baocl.blog.csdn.net/article/details/104729177

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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