zoukankan      html  css  js  c++  java
  • 使用钩子函数模拟小球半场动画

    <!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>Title</title>
    <script src="js/vue-2.4.0.js"></script>
    <style>
    .ball {
    15px;
    height: 15px;
    ">red;
    border-radius: 50%;
    }
    </style>
    </head>
    <body>
    <div id="app">
    <input type="button" value="加入购物车" @click="flag=!flag">
    <!--使用 transition 元素把小球包裹起来-->
    <!-- v-on:before-enter 动画开始 enter 动画执行 after-enter 动画结束 钩子函数-->
    <transition @before-enter="beforeEnter" @enter="enter" @after-enter="afterEnter">
    <div class="ball" v-show="flag"></div>
    </transition>
    </div>
    <script>
    const vm = new Vue({
    el: '#app',
    data: {
    flag: false,
    },
    methods: {
    //注意:动画钩子函数的第一个参数:el,表示 要执行动画的那个DOM元素,是个原生的JS DOM对象
    //大家可以认为,el 是通过 document.getElementById('') 方式获取到的原生JS DOM对象
    beforeEnter(el) {
    //beforeEnter 表示动画入场之前,此时,动画尚未开始,可以 在 beforeEnter 中,设置元素开始动画之前的起始样式
    //设置小球开始动画之前的,起始位置
    el.style.transform = "translate(0,0)"
    },
    enter(el, done) {
    //这句话没有实际作用,但是,如果不行 出不来动画效果;可以认为 el.offsetWidth 会强制动画刷新
    el.offsetWidth;
    //enter 表示动画 开始之后的样式,这里可以设置小球完成动画之后的,结束状态
    el.style.transform = "translate(150px,450px)";
    el.style.transition = 'all 1s ease';
    //这里的 done ,开始就是afterEnter 这个函数,也就是说:done 是 afterEnter 函数的引用
    done();
    },
    afterEnter(el) {
    //动画完成之后,会调用 afterEnter
    this.flag = !this.flag
    }
    }
    });
    </script>
    </body>
    </html>
  • 相关阅读:
    104.Maximum Depth of Binary Tree
    103.Binary Tree Zigzag Level Order Traversal
    102.Binary Tree Level Order Traversal
    101.Symmetric Tree
    100.Same Tree
    99.Recover Binary Search Tree
    98.Validate Binary Search Tree
    97.Interleaving String
    static静态初始化块
    serialVersionUID作用
  • 原文地址:https://www.cnblogs.com/lujieting/p/10447954.html
Copyright © 2011-2022 走看看