[转]快速上手VueJS动画

找动画相关资料时看到了这篇适合快速上手的文章,转自 blog.csdn.net/EthanQ/article/detai... ,作者 EthanQ,若侵删
想对 CSS 动画有更多的了解,还可参考 MDN 相关文档,以及官方文档 列表过度

动画可以使您的网站更具现代感,而且还能为网站带来更好的用户体验。幸运的是,对于开发人员来说,VueJS动画只需几分钟即可完成设置。

在本教程结束时,您将拥有第一个VueJS动画,并了解和学习到如何将其添加到项目中。这是我们将要创建的两个示例。

首先,创建自己的CSS动画样式。

然后,了解如何将第三方CSS库与Vue动画一起使用。

让我们赶快开始吧。

过渡元素

动画的处理与VueJS过渡非常相似。他们都使用Vue的元素。

元素是一个包装器组件,为以下元素提供开始/结束转换类和钩子

  • 有条件的渲染或显示元素(v-show或v-if)
  • 动态组件(:is)
  • 组件根节点(可以包装整个组件)

能够检测这些元素之一何时更改状态的元素-它的可见性是否更改,内容是否更改,或者是否已添加到DOM。然后,它添加了某些过渡类,我们可以使用它们来设置过渡的样式。

默认情况下,有六个可用的类:

  • v-enter / v-leave:过渡的开始状态;过渡开始后删除
  • v-enter-active / v-leave-active:过渡的活动状态
  • v-enter-to / v-leave-to:过渡的结束状态

这六个是无名transition的默认名称。如果我们为transition赋予name属性,则这些类将变为name-enter,name-enter-active等。

另外,transition元素还会发出JS钩子事件,因此我们可以捕获它们,并使用Javascript(而不是CSS)执行动画。可用的钩子是:

  • before-enter / before-leave
  • enter / leave
  • after-enter / after-leave
  • enter-cancelled / leave-cancelled

好了!现在我们已经了解了元素,让我们开始使用它来制作动画吧。

建立我们的第一个动画

对于初学者,我们需要一个条件元素,并在其周围加上过渡元素。我们的入门单个文件组件看起来像这样。

<template>  <div class='main-content'>    <transition name='rotate'>      <img         v-if='show'         src='../img/logo.png'      >     </transition>  </div></template> <script>export default {  data () {    return {      show: true    }  }}</script>

接下来,让我们添加一个按钮,该按钮可通过切换变量的值来切换元素的显示。

<button @click='show = !show'> Toggle </button>

设置好元素的条件渲染后,我们使用两个类来设置动画的样式:rotate-enter-active *和 *rotate-leave-active,因为我们将transition命名为rotate

一个很酷的技巧是让离开动画开始动画一样,只是方向相反!

@keyframes rotate {    0% { opacity: 0; transform: scale(0) rotate(-180deg); }    100% { opacity: 1; transform: scale(1) rotate(0deg); }} .rotate-enter-active {    animation: rotate 0.2s;} .rotate-leave-active {    animation: rotate 0.2s reverse;}

现在,当我们查看组件并切换组件时,会看到:

搞定了!我们已经用上了VueJS动画!

使用第三方库

如果我们不想自己编写所有的CSS动画,那么可以考虑使用很多很棒的CSS动画库,可以很容易地将它们合并到VueJS动画中。

在第一个示例中,我们只使用了元素生成的默认类名,但是我们可以做的就是将这些值覆盖到我们想要的任何类中,在这种情况下,它将是CSS库中的类名。

下边的示例中,我们将使用*Animate.css *– 要添加此代码,只需将CDN链接添加到我们的index.html文件即可。

index.html

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css">

现在,在我们的元素中,我们可以使用enter-active-class和Leave-active-class属性将transition过渡关联到Animate.js。请注意,要使用Animate.css,还需要添加animated类。

<transition   enter-active-class="animated fadeIn zoomIn"   leave-active-class="animated fadeOut zoomOut">...</transition>

超级简单,这是结果:

现在,我们已经学会了如何在项目中添加VueJS动画。

最后

重要的是不要过度做事。添加过多的动画也是使您的网站显得俗气的一种快速方法,但是使用动画添加微妙的视觉反馈,同样也能使您的网站对用户更加友好。只是要合理有度地使用!

希望本教程可以帮助您熟悉Vue动画和过渡,编码愉快!

更多好文章,欢迎访问:http://zhaima.tech

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!