vue怎么实现重复动画

发布于 2022-09-07 00:12:26 字数 2753 浏览 17 评论 0

我做出了一次性的动效,没有办法在变回来循环使用,看了vue官方文档,没找到我想要的方法,

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        @keyframes one {
            0% {
                width: 100px;
                background: red;
            }

            100% {
                width: 0px;
                background: red;
            }
        }

        @keyframes two {
            0% {
                width: 100px;
                background: red;
            }

            100% {
                width: 100px;
                background: red;
                -webkit-transform: rotate(135deg);
            }
        }

        @keyframes three {
            0% {
                width: 100px;
                background: red;
            }

            100% {
                width: 100px;
                background: red;
                transform: rotate(45deg) translate(-28px,-28px);
                /* -webkit-transform-origin: center; */
                /* -webkit-transform: translate(50px,100px); */
            }
        }

        .line {
            margin-top: 20px;
            width: 100px;
            height: 20px;
            background: red;
            color: #fff;
            border-radius: 8px;
        }



        .box {
            display: flex;
            flex-direction: column;
            width:100px;
        }

        .one {
            animation: one 1s ease .1s forwards;
        }

        .two {
            animation: two 1s ease .1s forwards;
        }

        .three {
            animation: three 1s ease .1s forwards;
        }
    </style>
</head>

<body>
    <div name="close" class="box" @click="change">
        <div :class="line1"></div>
        <div :class="line2"></div>
        <div :class="line3"></div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <script>
        new Vue({
            el: '.box',
            data: {
                line1: 'line',
                line2: 'line',
                line3: 'line',
            },
            methods: {
                change() {
                    this.line1 = 'line one';
                    this.line2 = 'line two';
                    this.line3 = 'line three';
                }
            }
        })
    </script>
</body>

</html>

怎么用
v-enter
v-enter-active
v-enter-to
v-leave
v-leave-active
v-leave-to
实现

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文