Vue.animate.css组件库的使用的详细解析

首先我回顾一下上次使用的代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Vue中Css动画原理</title>
    <script src='./vue.js'></script>
    <style>
        .v-enter,
        .v-leave-to {
            opacity: 0;
        }
        
        .v-enter-active,
        .v-leave-active {
            transition: opacity 3s;
            ;
        }
    </style>
</head>

<body>

    <div id="root">
        <transition>
            <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>

</html>

接下来我们可以通过一些属性 实现动画
代码如下

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Vue中的使用animate.css库</title>
    <script src='./vue.js'></script>
    <!-- <link rel="stylesheet" type="text/css" href="./animate.css"> -->
    <style>
        @keyframes bounce-in {
            0% {
                transform: scale(0);
            }
            50% {
                transform: scale(1.5);
            }
            100% {
                transform: scale(1);
            }
        }
        /* 接下来我们就可以使用这个动画了 */
        /* 当div show标签显示的过程中一直存在 */
        
        .fade-enter-active {
            transform-origin: left center;
            animation: bounce-in 3s;
        }
        /* 当div show标签不显示的过程中一直存在 */
        /* 当离开的时候  我希望这个动画进行反向执行 */
        /* reverse */
        
        .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">toggle</button>
    </div>

    <script>
        var vm = new Vue({
            el: '#root',
            data: {
                show: true
            },
            methods: {
                handleClick: function() {
                    this.show = !this.show
                }
            },
        })
    </script>

</body>

</html>

运行效果图

在这里插入图片描述
思考 我们可以是否 使用不同的命名的规范?来完成不同的动画效果.

当然可以了 有何不同自行 进行代码对比

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Vue中的使用animate.css库</title>
    <script src='./vue.js'></script>
    <!-- <link rel="stylesheet" type="text/css" href="./animate.css"> -->
    <style>
        @keyframes bounce-in {
            0% {
                transform: scale(0);
            }
            50% {
                transform: scale(1.5);
            }
            100% {
                transform: scale(1);
            }
        }
        /* 接下来我们就可以使用这个动画了 */
        /* 当div show标签显示的过程中一直存在 */
        
        .active {
            transform-origin: left center;
            animation: bounce-in 3s;
        }
        /* 当div show标签不显示的过程中一直存在 */
        /* 当离开的时候  我希望这个动画进行反向执行 */
        /* reverse */
        
        .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">toggle</button>
    </div>

    <script>
        var vm = new Vue({
            el: '#root',
            data: {
                show: true
            },
            methods: {
                handleClick: function() {
                    this.show = !this.show
                }
            },
        })
    </script>

</body>

</html>

然后我们引入一个组件库

在这里插入图片描述
有了这个库 就不需要我们自己书写 这些动画代码了

注意的是
在这里插入图片描述
这里的划钱的地方代表不同的效果
具体代码如下

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Vue中的使用animate.css库</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>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值