vue.js动画中的js钩子函数

在transition中还可以通过设置javascript钩子函数,实现自定义动画效果。

以实现击球效果为例:

击球

具体代码

代码解析:

<!-- 定义js的钩子函数 -->
<transition
    @before-enter="beforeEnter"
    @enter="enter"
    @after-enter="afterEnter"
>
    <img v-show="flag" class="ball" :src="ball" alt="" width="30">
</transition>
let vm = new Vue({
    el: "#app",
    data: {
        flag: false,
        ball: 'https://upload-images.jianshu.io/upload_images/1864602-ec73f549171a6601.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240'
    },
    methods: {
        // el 表示要执行动画的那个DOM元素, 是原生的 js DOM 对象
        beforeEnter(el) {
            // 设置动画开始之前的初始位置
            el.style.transform = "translate(0, 0)"
        },
        enter(el, done) {
            // 刷新动画效果
            el.offsetWidth;
            // 动画完成后的样式
            el.style.transform = "translate(550px, 350px)";
            // 动画的持续时间
            el.style.transition = "all 3s ease";
            // done 其实是 afterEnter() 的引用
            done();
        },
        afterEnter(el) {
            // 动画完成之后调用
            this.flag = !this.flag
        }
    }
})

最终效果:

击球.gif

更多vue.js的有趣实例,请点击移步至目录

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

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,302评论 3 119
  • 陪我高三最后那段日子的自行车放在车库里积了灰,爸爸说要给别人了;住了十八年的房子终于要拆迁了;毕了业的班级再也聚不...
    mine921179阅读 270评论 0 0
  • 《黄帝内经》云:“经络能决死生,治百病。”只要打通经络,即可百病不生。然而现代人不爱运动,会导致血液不通畅,气血不...
    关爱自己的身体阅读 4,715评论 0 0
  • 今天是2017年8月27日,下午13:30分,今年的第14号“帕卡”台风正式登录江门,风力达12级,我不知道这场台...
    求知小聂阅读 384评论 2 0
  • (观察对象:吴承泽 荣梓辰 李卓轩) 今天是个好天气,天空格外的蓝。托班的宝宝们吃完美味的早餐稍作休息便在豆豆老师...
    寒璐阅读 1,271评论 0 0

友情链接更多精彩内容