案例-设备【GSAP】

步骤
- 设置初始值
- 动画
- 循环
TweenMax.set("#mac", {transformOrigin: 'bottom 0%',scale: 0 });TweenMax.set("#ipad", {transformOrigin: 'bottom 0%',autoAlpha: 0,scale: 0 });......使用TweenMax.set 设置初始值包括动画起始位置 基点位置缩放至0 ---> 这样可以控制出现位置。
逐渐出现
const visible = item => {let tl = new TimelineMax();tl.to(item, .5, {scale: 1,autoAlpha: 1,ease: Elastic.easeOut.config(1, 0.75) });return tl;};
Bar跳跃
const bars = item => {let tl = new TimelineMax();tl.staggerTo(item, 1, {scaleY: 0,transformOrigin: 'bottom 0%',yoyo: true,repeat: -1,ease: Power0.easeNone,stagger: {amount: 1.5 } });return tl;};
…
声明时间线
const master = new TimelineMax({ delay: .5 });master.timeScale(1.5); // 获取/设定动画速度 - 1.5倍速master.add('s'); // 辅助工具 - 方便后面时间管理master.add(visible('#mac'), 's+=1.1').add(visible('#phone'), 's+1.2').add(visible('#ipad'), 's+1.3').add(visible('#stuff-on-mac'), 's+1.4').add(visible('#stuff-on-iphone'), 's+1.5').add(visible('#stuff-on-ipad'), 's+1.6'). // 出现add(bars('.bar'), 's+1.6'). // 动画add(bars('.shade'), 's+1.6').add(lines('.line'), 's+1.6').// 线条动画add(lines('.line2'), 's+1.6').add(device('.device'), 's+1.6').add(device('.device2'), 's+1.6');
运动路径
在SVG动画工具包中,沿运动路径设置动画的功能非常有用。让我们探索实现这一目标的几种方法,包括即将推出的CSS运动路径模块和新发布的GSAP3
大多数自然动作倾向于遵循弓形的轨迹,动画应遵循此原理,通过遵循暗示的“弧”来实现更大的真实感。
<script>// 1. 选择运动的路径const path = MorphSVGPlugin.pathDataToBezier("#linePath", {align: ".plane"});console.log(path);// 2. 选择要运动的物体let tl = new TimelineMax();tl.staggerTo(".box", 8, {bezier: {values: path,type: "cubic",autoRotate: true},ease: SlowMo.ease.config(0.3, 0.1, false),// 运动曲线repeat: -1,}, 0.5)</script>
SVG变形
<script>ani = TweenMax.from("#linePath",3,{drawSVG: "10%",},{drawSVG:"true"})ani.yoyo(true).repeat(-1);</script>
