首页 > 其他分享 >GSAP库解决复杂动画

GSAP库解决复杂动画

时间:2023-05-30 09:01:07浏览次数:55  
标签:box 动画 复杂 gsap GSAP TweenMax com

1. 它可以在任何框架上处理页面能够所有通过js改变的元素,不仅可以对div的css属性进行动画,还是SVG、React、Vue、WebGL,甚至和Threejs一起使用。

除了GSAP核心库外,还有很多实用的插件,比如结合ScrollTrigger插件,我们可以实现非常震撼的滚动触发效果;同时也不需要担心响应式的问题,GSAP确保项目响应迅速、高效且流畅。

使用方法 
gsap.to('.box', { x: 200 });

如果我们对.box元素进行元素检查,我们会发现GSAP实际上是不停的修改transform属性,直至最终停留在transform: translate(200px, 0px);我们继续回到上面的代码。box标签 向右移动200px

在上段代码中,我们发现这段代码包含有3层含义:函数、目标和变量;首先目标就是我们想要移动的元素,可以是CSS选择器,也可以使dom元素,甚至是一串数组:

// CSS选择器
gsap.to(".box", { x: 200 });
gsap.to("#box1", { x: 200 });

// dom元素
const box = document.querySelector(".box");
gsap.to(box, { x: 200 })

// 元素数组
let square = document.querySelector(".square");
let circle = document.querySelector(".circle");
                                      
gsap.to([square, circle], { x: 200 })

然后是函数,有四种类型的动画函数:

  1. gsap.to:最常用的动画类型,从当前状态开始。
  2. gsap.from:和.to相反,从一个状态开始到当前状态。
  3. gsap.fromTo:可以自定义开始和结束状态。
  4. gsap.set:立即设置属性,没有动画效果。
gsap.from(".box", {  x: 300,});
gsap.fromTo( ".box",
{ x: 0, y: 0, }, { x: 400, y: 50, }, );
gsap.set(".box", { x: 400, y: 50,});
gsap.to(target, { x: 400, y: 50, rotation: 180, // 特殊属性 duration: 3, repeat: 2 });

尽可能的使用transforms,而不是布局属性,例如top、left或者margin,有更平滑的动画体验。

GSAP提供了下面的缩写形式,上面的transforms属性可以直接缩写成下面的属性(yPercent表示百分比元素的高度):

transform: rotate(360deg) translateX(10px) translateY(50%);

{ rotation: 360, x: 10, yPercent: 50 }

特殊属性用来调整动画的表现形式,我们在上面用到了repeat和duration,下面的文档中提供了一些常用的属性:

属性名描述
duration 动画的持续时间(单位:秒)默认0.5秒
delay 动画重复次数
yoyo 布尔值,如果为true,每次其他动画就会往相反方向运动(像yoyo球)默认false
stagger 每个目标动画开始之间的时间(秒)
ease 控制动画期间的变化率,默认"power1.out"
onComplete 动画完成时的回调函数

 

1.什么是GSAP?
    GSAP(GreenSock Animation Platform)是一个从flash时代一直发展到今天的专业动画库

    2.GSAP优点
    1、速度快。GSAP专门优化了动画性能,使之实现和CSS一样的高性能动画效果。
    2、轻量与模块化。模块化与插件式的结构保持了核心引擎的轻量,TweenLite包非常小(基本上低于7kb)。GSAP提供了TweenLite, TimelineLite, TimelineMax 和 TweenMax不同功能的动画模块,你可以按需使用。
    3、没有依赖。
    4、灵活控制。不用受限于线性序列,可以重叠动画序列,你可以通过精确时间控制,灵活地使用最少的代码实现动画。

    3.GSAP版本
    GSAP提供4个库文件供用户使用
    1.TweenLite:这是GSAP动画平台的核心部分,使用它可以用来实现大部分的动画效果,适合来实现一些元素的简单动画效果。
    2.TimelineLite:一个强大的,轻量级的序列工具,它就如一个存放补间动画的容器,可以很容易的整体控制补间动画,且精确管理补间动画彼此之间的时间关系。比如动画的各种状态,Pause,reverse,restart,speed up,slow down,seek time,add labels等。它适合来实现一些复杂的动画效果。
    3.TimelineMax:扩展TimelineLite,提供完全相同的功能再加上有用的(但非必需)功能,如repeat,repeatDelay,yoyo,currentLabel()等。TimelineMax的目标是成为最终的全功能工具,而不是轻量级的。
    4.TweenMax:可以完成TimelineLite做的每一件事,并附加非必要的功能,如repeat,yoyo,repeatDelay(重复延迟)等。它也包括许多常见的插件,如CSSPlugin,这样您就不需自行载入多个文件。侧重于全功能的,而不是轻量级的。
    >>建议在开发中使用TweenMax这个全功能的js文件,它包括了GreenSock动画平台的所有核心的功能。

    官网地址:http://www.greensock.com/
    github地址:https://github.com/greensock/GreenSock-JS/
    中文网: https://www.tweenmax.com.cn/
    * */
    // 1.创建TweenMax对象
    /*
    第一个参数: 需要执行动画的元素
    第二个参数: 动画执行的时长
    第三个参数: 具体执行动画的属性
    * */
    new TweenMax(".box", 3, {x: 500});
    // 2.利用静态方法执行动画
    // 从当前位置到指定位置
    TweenMax.to(".box", 3, {x: 500});
    // 从指定位置到当前位置
    TweenMax.from(".box", 3, {x: 500});
    // 从第一个指定的位置到第二个指定的位置
    TweenMax.fromTo(".box", 3, {x: 500}, {x: 200});

 

 

 

 

 

相关示例 

 这个库让你轻松搞定复杂动画! (qq.com)

(24条消息) GSAP的基本介绍_YY小怪兽的博客-CSDN博客

 

    官网地址:http://www.greensock.com/
    github地址:https://github.com/greensock/GreenSock-JS/
    中文网: https://www.tweenmax.com.cn/

 

标签:box,动画,复杂,gsap,GSAP,TweenMax,com
From: https://www.cnblogs.com/Deer-Mr/p/17442224.html

相关文章

  • WPF基础入门——绘画和动画(Draw&Animation)
    本篇文章学习于:刘铁猛老师《深入浅出WPF》XAML语言针对的是界面美化问题,可以让设计师直接加入开发团队、降低沟通成本。XAML的图形绘制功能非常强大,可以轻易绘制出复杂的图标、图画。WPF支持“滤镜”功能,可以像Photoshop那样为对象添加各种效果。WPF原生支持动画开发,无论是设......
  • 基于Expression Lambda表达式树的通用复杂动态查询构建器——《剧透一下》
    前篇《https://www.cnblogs.com/ls0001/p/17437225.html》有大佬在评论里剧透了,这里就来一遍剧透。  通常,前后端分离的系统要在前端查询数据是提交一个带着查询条件参数的表单,比如A=1,B=2,类似样,后端接收到表单需要将这些条件参数拼接成查询需要写代码,并且表单结构通常是不带查......
  • 基于Expression Lambda表达式树的通用复杂动态查询构建器——《原型篇一》[已开源]
    续接上编,本篇来讲讲俄罗斯套娃的设计与实现。首先简单地完善一下前面提到的例子,代码如下:测试实体类//测试实体类publicclassTable{publicintA;publicintB;}独立条件类//独立条件:publicclassField{publicLogicalLogical{get;set;} ......
  • 修改开机动画和logo
    修改文件:  AllAudio.mk最后一行添加内容: ......
  • 专业的三维动画制作软件Maya2024最新mac版
    AutodeskMaya2024mac是一款专业的三维动画制作软件,在三维动画制作中,它是一款功能强大、界面友好的软件,它可以轻松创建各种场景类型、材质的动画,并可以将各种元素和模型混合到一起,实现丰富而逼真的效果。→→↓↓载Maya2024mac 一、新的“MayaSoftware”软件套件Maya......
  • 领域驱动设计-软件核心复杂应对之道:第八章
    第三部分通过重构来加深理解要想成功地开发出实用的模型,需要注意以下三点复杂巧妙地领域模型是可以实现的,也是值得我们去花费力气实现的这样的模型离开不断地重构是很难开发出来的,重构需要领域专家和热爱学习领域知识的开发人员密切参与进来要实现并有效地运用模型,需要精通......
  • 【习题 7】属性动画 答案
    【习题7】属性动画判断题1.属性动画中产生动画的属性可以在任意位置声明。正确(True)错误(False)2.属性动画中改变属性时需触发UI状态更新。正确(True)错误(False)单选题1.属性animation可以在哪些组件中使用?A.只能基础组件B.只能容器组件C.基础组件......
  • 动画
    1.动画动画(animation)是CSS3中具有颠覆性的特征之一,可以通过设置都各节点来精确控制一个或一组动画,常用来实现复杂的动画效果。相比较过度,动画可以实现更多变化,更多控制,连续自动播放等效果。1.1动画的基本使用制作动画分为两步:(1)先定义动画(2)再使用(调用)动画1.1.1用Keyframe......
  • python系列教程209——复杂的lambda语句
    声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值......
  • vue列表逐个进入过渡动画
    vue列表逐个进入过渡动画vue2,vue3,通过vfor产生列表,使子元素逐个进入效果文章详情:https://www.cnblogs.com/Llshy/articles/17430695.html......