gsap它的全称是GreenSock Animation Platform,它是一个功能非常强大的动画平台,它可以对JavaScript操作的所有内容实现动画效果,同时,还解决了不同浏览器中存在的兼容性问题,而且速度和效率都非常快,全球超过1000万过站点都在使用它提供的动画。
在使用gsap 平台提供的动画之前,首先需要在项目文件夹下,通过下列指令来安装gsap 框架,指令如下所示。
npm install gsap
安装成功后,在需要使用该动画效果的组件中导入该库文件,代码如下
import gsap from 'gsap';
导入成功后,就可以在组件的模板元素中,使用平台框库中的动画效果了,接下来通过一个示例来演示gsap库中的动画在组件中的使用过程。
实例5-5 应用gsap库中动画
1. 功能描述
在上述示例5-1的基础上,当单击按钮时,通过应用gsap库中的动画的效果,实现元素中的数字以快速蹦跳的动画方式来展示不断增加的新数字。
2. 实现代码
在项目components 文件夹的ch5子文件夹中,添加一个名为“GsapAnimate”的.vue文件,在文件中加入如清单5-5所示代码。
代码清单5-5 GsapAnimate.vue代码
<template><div class="action"><div class="act"><input type="button" @click="increment()" value="动画数字"></div><div class="change">{{ counter.toFixed(0) }}</div></div>
</template><script>
import gsap from 'gsap'
export default {name: "GsapAnimate",data() {return {counter: 0};},methods: {increment() {gsap.to(this, { duration: 2, counter: this.counter + 100 }
)}},
};
</script>
<style>
.action .act {margin: 10px 0;
}
.action .change{font-size: 30px;font-weight: 700;font-family:'微软雅黑'
}
</style>
3. 页面效果
保存代码后,页面在Chrome浏览器下执行的页面效果如图5-6所示。
4. 源码分析
在上述示例的代码中,首先在组件中导入安装成功的gsap动画库,然后在定义一个变量counter,用于保存每增加的数字,并将结果显示在模版元素中,当记录每次数字变化时,默认有小数点,为了显示效果,调用toFixed()方法,参数为0时,除掉小数点后的数字。
最后,当点击按钮时,执行自定义的increment方法,在该方法中,直接调用gsap动画库中的to()方法,该方法的调用格式为:
gsap.to(targets,vars)
上述方法中的参数targets表示需要添加动画的对象,可以是一个Object、Array对象和选择器所获取的元素,本示例中使用的是this,表示Vue实例对象本身。
参数vars是一个配置对象,可以包含想要以动画形式改变的属性名称、延时和动画时长以及动画执行后的回调函数等,本示例中duration属性表示动画时长,变化值的名称是counter,变化时的规则是每单击一次按钮,会在原值的基础上再增加100。gsap框架如果发现变化的是数字时,会自动以动画形式执行数字的递增或递减效果。