41. [动画]如何在Vue中使用第三方动画库Animate.css

这节我们一起学习一下,如何在Vue中使用第三方动画库Animate.css。它里边有很多已经写好的动画,可以给开发带来极大的方便。在学习第三方动画库使用前,我们要先学会一个知识,就是自定义Vue中固定的CSS动画选择器。

自定义动画选择

新建一个Demo41.html文件,代码如下。你也可以直接复制下面这段代码。复制好之后,可以在浏览器中查看一下执行的动画效果。

<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Mybj</title>
    <style>
        @keyframes comein{
            0%{
                transform :translateX(-120px)
            }
            100%{
                transform :translateX(0px)
            }
        }
        @keyframes comeout{
            0%{
                transform :translateX(0px)
            }
            100%{
                transform :translateX(-120px)
            }
        }
        .v-enter-active{
            animation: comein 1s;
        }
        .v-leave-active{
            animation: comeout 1s;
        }

    </style>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/3.0.2/vue.global.js"></script>
</head>

<body>
    <div id="app"></div>
</body>
<script>
    const app = Vue.createApp({
        data(){
            return {
                isShow:false
            }
        },
        methods:{
            hanldClick(){
                this.isShow = ! this.isShow
            }
        },
        template: `  
        <transition>
            <div v-if="isShow">码云笔记前端博客</div>
        </transition>
        <button @click="hanldClick">切换动画</button>
        `
    })
    const vm = app.mount("#app")
</script>

代码中使用了v-enter-activev-leave-active,这些CSS中固定选择器的类名又臭又长,有没有办法自定义这些选择器的名称那。我这里讲两个方法,你们可以根据需要自行选择。

方法一:给transition标签一个name

这种形式也叫做部分更改,就是通过给<transition>标签一个name属性,然后CSS选择器也要跟着变化。比如先把template中的<transition>标签,加入name='mybj'

template: `  
    <transition name="mybj">
        <div v-if="isShow">码云笔记前端博客</div>
    </transition>
`

这时候你去浏览器中预览,发现所有的动画已经不能在使用了。那这时候你需要把CSS选择器改为.mybj-enter-active.mybj-leave-active,此时的CSS代码如下。

.mybj-enter-active{
    animation: comein 1s;
}
.mybj-leave-active{
    animation: comeout 1s;
}

这时候再去浏览器中看效果,动画效果就又恢复到了正常。

正如所说的,他只能修改部分CSS选择器(也就是前半部分),把v-enter-active改为了mybj-enter-active。这个在一个页面中有多个动画时,经常使用。

方法二:自行制定CSS选择名称

这种方法,就是在<transition>标签中直接指定一个CSS样式,在工作中这种方法使用较多,灵活性也比较强。

现在新写一个CSS样式,叫做comego,代码跟v-enter-activev-leave-active的CSS代码一样。

.come{
    animation: comein 1s;
}
.go{
    animation: comeout 1s;
}

有了这两段CSS代码后,可以删除上面的v-enter-activev-leave-active的样式,目的是不混淆,防止小伙伴误会。

然后在template代码中,加入enter-active-classleave-active-class属性,并指定名称。

template: `  
    <transition 
        enter-active-class="come"
        leave-active-class="go"
    >
        <div v-if="isShow">码云笔记前端博客</div>
    </transition>
`

使用自定义名称可以定义一些比较复杂的动画,也可以使用第三方动画库,比如Animate.css动画库。

使用第三方动画库

当我们会了这种自定义方法后,就可以使用Animate.css这样的动画库了。

这里先给出动画库的网址:点击这里

直接进入动画库,可以看到在网页的左侧,有很多的动画效果,你可以点击进行预览。

动画库

现在你要使用这个动画库,可以直接在HTML页面中引入CDN地址。

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

然后在想有动画的标签上面加上animate__animated 和其他你想要的的动画效果,比如animate__bounce (跳动的动画),就可以实现一个酷炫的CSS动画效果了。

template: `  
    <transition 
        enter-active-class="animate__animated animate__bounce"
        leave-active-class="animate__animated animate__bounce"
    >
        <div v-if="isShow">码云笔记前端博客</div>
    </transition>
    <button @click="hanldClick">切换动画</button>
`

此时到浏览器中查看一下效果,这时候的文字就是蹦蹦跳跳的进入和退出页面的。

在Vue中使用第三方动画库Animate.css

当然你也可以试试其他效果,比如flashheartBeat都是非常不错的效果。

总结

这节我们学习了三个重要的知识点:

  1. 部分自定义动画CSS样式的方法
  2. 全部自定义动画CSS样式的方法
  3. 使用第三方CSS动画库来制作动画
1. 本站所有免费资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!
2. 本站不保证所提供下载的免费资源的准确性、安全性和完整性,免费资源仅供下载学习之用!如有链接无法下载、失效,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或技术教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
5. 加入前端开发QQ群:565733884,我们大家一起来交流技术!
码云笔记 » 41. [动画]如何在Vue中使用第三方动画库Animate.css

发表评论

提供最优质的资源集合

立即查看 了解详情