美文网首页
在Vue中使用Animate.css库

在Vue中使用Animate.css库

作者: 李浩然_6fd1 | 来源:发表于2019-03-25 12:21 被阅读0次

    上一节说的是Vue的过渡动画 ,这一节学习下keyframes动画。

    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script src="./vue.js"></script>
        <style>
            @keyframes bounce-in{
                0%{
                    transform: scale(0);
                }
                50%{
                    transform: scale(1.5);
                }
                100%{
                    transform: scale(1);
                }
            }
    
            .fade-enter-active{
                transform-origin: left center;
                animation: bounce-in 1s;
            }
            .fade-leave-active{
                transform-origin: left center;
                animation: bounce-in 1s reverse;
            }
        </style>
    </head>
    <body>
        <div id="root">
            <transition name='fade'>
                <div v-if="show">hello world</div>
            </transition>
            <button @click="handleClick">切换</button>
        </div>
    
        <script>
            var vm = new Vue({
                el:"#root",
                data:{
                    show:true
                },
                methods:{
                    handleClick:function(){
                        this.show = !this.show
                    }
                }
            })
        </script>
    </body>
    

    上式代码中,在style中定义了keyframes动画,名字是bounce-in,大括号里面的内容是各个阶段,字体所改变的大小。
    定义完之后,在'.fade-enter-active'和'.fade-leave-active'中就可以使用了:animation后面加上keyframes的名字bounce-in,再写上执行完所需的时间,还得再加上transfor-origin,不然演示动画的时候可能会有问题。'.fade-leave-active'也一样,如果我想让离开的动画反向执行,我在animation后面加上reverse。
    上面就是keyframes的C3动画。
    有个小知识点:style标签中定义的‘.fade-enter-active’和‘.fade-leave-active’这两个名字是可以用自己定义的名字来代替的,不过还是得在transition中定义一下:

    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script src="./vue.js"></script>
        <style>
            @keyframes bounce-in{
                0%{
                    transform: scale(0);
                }
                50%{
                    transform: scale(1.5);
                }
                100%{
                    transform: scale(1);
                }
            }
    
            .active{
                transform-origin: left center;
                animation: bounce-in 1s;
            }
            .leave{
                transform-origin: left center;
                animation: bounce-in 1s reverse;
            }
        </style>
    </head>
    <body>
        <div id="root">
            <transition name='fade'
            enter-active-class="active"
            leave-active-class="leave"
            >
                <div v-if="show">hello world</div>
            </transition>
            <button @click="handleClick">切换</button>
        </div>
    
        <script>
            var vm = new Vue({
                el:"#root",
                data:{
                    show:true
                },
                methods:{
                    handleClick:function(){
                        this.show = !this.show
                    }
                }
            })
        </script>
    </body>
    

    我在body中的transition标签中定义了‘enter-active-class’和‘leave-active-class’的自定义的名字分别为‘active’和‘leave’,这样就可以在上面的style标签中使用‘active’和‘leave’这两个名字了。

    现在介绍下animate.css库,这个库其实就是keyframes封装而来的。
    从网上下载好之后,用链接链接到代码中就可以使用了。

    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script src="./vue.js"></script>
        <link rel="stylesheet" type="text/css" href="./animate.css">
    </head>
    <body>
        <div id="root">
            <transition name='fade'
            enter-active-class="animated swing"
            leave-active-class="animated shake"
            >
                <div v-if="show">hello world</div>
            </transition>
            <button @click="handleClick">toggle</button>
        </div>
    
        <script>
            var vm = new Vue({
                el:"#root",
                data:{
                    show:true
                },
                methods:{
                    handleClick:function(){
                        this.show = !this.show
                    }
                }
            })
        </script>
    </body>
    

    用animate.css库之后,就不用自己写动画了,直接链接这个库,然后在内容上使用这个库就可以了。
    在用的时候,需要注意几点:
    1、必须要使用自定义形式的class:“enter-active-class”、“leave-active-class”;
    2、自定义形式的class,等号后面必须加一个“animated”这个具体的类,然后添加所需要的动画效果,例子中添加的是swing和shake,

    相关文章

      网友评论

          本文标题:在Vue中使用Animate.css库

          本文链接:https://www.haomeiwen.com/subject/pgymvqtx.html