vue_24使用钩子函数创建半场动画(没有还原效果)

小球动画效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../util/vue-2.4.0.js"></script>
    <style>
        .ball{
            width: 15px;
            height: 15px;
            border-radius: 50%;
            background-color: red;
        }
    </style>
</head>
<body>
<div id="test">
    <input type="button" @click="flag=!flag" value="button">
    <transition
        @before-enter="beforeEnter"
        @enter="enter"
        @after-enter="afterEnter"
    >
        <div class="ball" v-show="flag"></div>

    </transition>
</div>
<script>
    var vm1 = new Vue({
        el:"#test",
        data:{
            flag:false
        },
        methods:{
            //注意: 动画钩子函数的第一个参数:el,表示 要执行动画的那个DOM元素,是个原生的 JS DOM对象
            beforeEnter:function (el) {
                el.style.transform = "translate(0,0)"
            },
            enter:function (el,done) {
                el.offsetWidth; // 获取元素的宽度,这里没什么实际作用,不加不出效果
                // enter 表示动画 开始之后的样式,这里,可以设置小球完成动画之后的,结束状态
                el.style.transform="translate(150px,450px)";
                // 动画执行的方式
                el.style.transition="all 1s ease";
                // 这里的 done, 起始就是 afterEnter 这个函数,也就是说:done 是 afterEnter 函数的引用
                done()
            },
            afterEnter(el){
                this.flag = !this.flag;
            }
        }
    })
</script>

</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【Android 动画】 动画分类补间动画(Tween动画)帧动画(Frame 动画)属性动画(Property ...
    Rtia阅读 6,436评论 1 38
  • 看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印象,因...
    DCbryant阅读 835评论 0 2
  • 这两天,他转发了一篇微信文字给我,一个西餐厨师的一生,简直是血泪史,他说写这篇文字的人一定是真正做西餐的人,特别知...
    怡儿话书影阅读 2,367评论 2 8
  • 早上起床,头脑里隐隐浮现出上周末助学走访的孩子们。 是对他们放心不下吗?还是在期待下一次走访? 才过去几天的时间,...
    倚倾城阅读 523评论 2 1

友情链接更多精彩内容