TweenMax动画库

TweenMax扩展自TweenLite,添加了很多比较有用的特性,例如:repeat(),repeatDelay(),yoyo(),等等。

TweenMax构造函数

TweenMax ( target:Object, duration:Number, vars:Object );

target : Object – 目标 MovieClip (或其它对象),对它的属性进行缓动
duration : Number – 动画的时间长度(单位:秒)
vars : Object -一个包含了多种属性的对象,用来存贮缓动结束时的各种属性值(如果你使用 TweenLite.from() 方法,这里的参数表示缓动的初始值)。

最常用的方法是TweenMax.to(),它允许你定义对象的目标值。

var photo = document.getElementById('photo');
TweenMax.to(photo,2,{width:"200px",height:"150px"});

上述代码将会使ID为photo的DOM元素从width和height的当前值在2秒钟内分别逐渐变成200px和150px,注意width和height属性是被定义在一个普通对象里(面花括号里面)。你可以随意定义更多的属性进里面,你需要的话。
如果你的target传入的是一个字符串。例如:

TweenMax.to("#myID", 1, {left:"100px"})) 

TweenMax会将其匹配到$(即典型的jQuery),或者如果没有匹配到,则默认匹配成document.querySelectorAll() 或者document.getElementById()(自动删除“#”符号),或者你也可以定义你自己的选择器,像TweenLite.selector = YOUR_SELECTOR_ENGINE;
所以一旦TweenMax加载,你就可以轻松地处理这样的动画:

TweenMax.to("#myID",2,{backgroundColor:"#ff0000",width:"50%",top:"100px",ease:Power2.easeInOut});
//或者你可以使用更多先进的选择器,例如所有具有myClass类的元素:
TweenMax.to(".myClass",2,{boxShadow:"0px 0px 20px red",color:"#fc0"});

tweens默认立刻执行,但是你可以使其延迟或者暂停执行,通过使用特殊属性delay和
pause;
target还可以是对象数组,例如,下面的代码会使obj1,obj2,obj3的opacity变成0.5,transform的rotation属性变成45:

TweenMax.to([obj1, obj2, obj3], 1, {opacity:0.5, rotation:45});

你还可以使用TweenMax.from(),如果你想定义开始值,而不是目标值的话。这时,目标对象将会从定义的开始值逐渐运动变为当前值。另外,TweenMax.fromTo()可以定义开始值以及目标值。
虽然to(), from(), 和 fromTo()这三个静态方法非常流行,因为他们快速,可以避免垃圾收集的繁琐程序,但其实你还可以使用更多的面向对象的语法,例如:

var tween = new TweenMax(myObject, 2, {width:200, height:150});
//甚至是:
var tween = TweenMax.to(myObject, 2, {width:200, height:150});

专有属性,回调函数和缓动

除了处理tween的目标值,vars对象允许你使用各种选项来配置你的tween。

TweenMax.to(element, 1, {opacity:0, onComplete:completeHandler, ease:Back.easeOut, useFrames:true});

TweenMax vars对象的所有属性列表如下:

0. delay 数值 表示动画开始前的延迟时间(或者是帧),单位是秒
1. ease 方法或字符串 表示缓动方式 它的值有很多种:Elastic.easeOutStrong.easeInOutPower0.easeIna.控制加减速easeOut:减速运动easeIn:加速运动easeInOut:先加速后减速运动easeNone:匀速运动b.控制运动方式Elastic 弹性运动Linear 线性运动Power0 力度比较小的Power1Power2Power3Power4Power5QuadCubicQuartQuintStrongBackBounce SlowMo SteppedEase Circ ExpoSine
  1. repeat 数值(整数) 继第一次动画循环后,动画应该重复的次数,假如repeat为1,那么动画将总共执行两次

  2. repeatDelay 数值 动画每次重复之间延迟的时间,单位是秒

  3. yoyo 布尔值 如果值为true,每隔一个重复周期对象以相反方向运行一次,使补间来回走动,尽管这样,但它不会影响到“reversed”属性。所以,如果repeat为2,yoyo为false,这将看起来像 “start-1-2-3-1-2-3-1-2-3-end”但如果yoyo值为true,这将看起来像是:”start-1-2-3-3-2-1-1-2-3-end”。
  4. paused 布尔值 如果为true,补间动画将立即停止
  5. overwrite 字符串或整数值 控制怎么(或者是否)覆盖其他同一目标值的补间动画,这里有几种模式可提供选择:
    none(0)(or false) 不会出现覆盖
    all (1)(or true) 立刻覆盖所有存在相同目标对象的补间动画,即使是还没开始运动的或者是没有冲突属性的。
    auto (2)(默认值) 当补间动画第一次呈现时,它会分析活动着或者正在运动的具有相同目标对象的补间动画,并且只会覆盖个别属性重叠或者冲突的。并且忽略还未开始的补间动画。比如说,如果另外一个活动着的补间动画有3个属性,并且只有一个属性是与新的补间动画相同冲突的,那么另外两个属性将会被忽略,只有冲突的那个属性会被覆盖或者杀死。
    concurrent (3) 当补间动画第一次呈现,将只会杀死相同目标对象并且活动着的补间动画,而不管它们是否存在冲突的属性。像是“all”与“auto”的混合。适合用在你每次只需要一个补间动画来控制目标对象的情况。
    allOnStart (4)
    preexisting (5)

7.onComplete 函数 动画完成时调用的函数
8.onCompleteParams 数组 传入动画完成函数的参数
9.onCompleteScope 对象 定义动画完成函数的作用域 如:“this”

10.onRepeat 函数 每次动画重复时调用
11.onRepeatParams
12.onRepeatScope

13.onReverseComplete 函数 当动画从相反方向回到重新开始的地方时调用,例如,一旦reverse()方法被调用,补间动画将回到起点时,并且时间归0时,onReverseComple()会被调用。
14.onReverseCompleteParams
15.onReverseCompleteScope

16.onStart 在补间动画开始时被调用(当时间从0改变为其他值,他可以发生多次如果补间动画重复启动多次)
17.onStartParams
18.onStartScope

19.onUpdate 函数 - 每次动画更新(动画被激活的每一帧上)时被调用。
20.onUpdateParams
21.onUpdateScope

22.startAt 对象-允许您定义补间属性的初始值。通常情况下,TweenMax使用当前值(不管它发生是否在补间开始的时间)作为初始值,但startAt可以覆盖该行为。
只需补间开始之前在你想设置的属性中传递一个对象。例如,如果mc.x目前是100,你想使其从0变到500,执行:
TweenMax.to(mc, 2, {x:500, startAt:{x:0}});

23.useFrames 布尔值 - 如果useFrames为true,则补间的时间将基于帧而不是秒,因为它是intially添加到基于帧的根时间轴。这导致它们两个的持续时间和延迟是基于帧的。一个动画的定时模式总是由其父时间表确定。

24.lazy 布尔值 - 当补间第一次呈现和读取其初始值,默认情况下,GSAP会自动“懒渲染”,,这意味着它会尽量拖延渲染(值写入),直到尽头的“勾选“循环,可以提高性能,因为它避免了读/写/读/写布局颠簸,有些浏览器做的。如果您想关闭延迟渲染特定补间,您可以设置懒:假的。或者,因为零时间补间不懒渲染默认情况下,可以专门给它的权限设置懒渲染:真像TweenLite.set(元,{不透明度:0,懒:真});.在大多数情况下,你不会需要设置懒惰。
25.onOverwrite 函数 - 当补间被另一补间动画 覆盖,应该调用的函数。以下参数将被传递到该函数:
1.overwrittenTween :动画 - 刚覆盖补间
2.overwritingTween :动画-做了覆盖的补间
3.target
4.overwrittenProperties
26.autoCSS 布尔值 - 与动画相关的DOM元素属性需要CSSPlugin。CSSPlugin-正常情况下,你需要把css相关属性放进一个css:{}对象中,例如:TweenLite.to(element,2,{css:{left:”200px”,top:”100px”},ease:Linear.easeNone}),用来表明你的意图(告诉GSAP以提供这些值给CSSPlugin),但是由于动画与css相关的属性是很常见的,GSAP实现了一些内部逻辑,允许您忽略css:{}的包裹(意味着你可以这样写上面的例子:TweenLite.to(element,2,{left:”200px”,top:”100px”,ease:Linear.easeNone})),默认情况下,它会检测目标对象是否是DOM元素,如果是,并且您没有定义一个css:{}对象,它就会创建该对象并填充属性。若要禁止该功能,可以设置autoCSS:false

27.callbackScope 对象 - 范围用于所有的回调(onStart,onUpdate,onComplete等)。该范围是什么“this”指向的所以内部回调函数。旧的特定回调范围的属性(onStartScope,onUpdateScope,onCompleteScope,onReverseComplete等)已被弃用,但仍然可以工作。
“`

tweenmax笔记相关推荐

  1. TweenMax学习笔记整理

    因为要做一个案例,里面用到了很多动画,TweenMax真的是一个很强大的动画库,所以就学了一点里面的方法,现在整理出来 官网:https://greensock.com/tweenmax 注意:这个动 ...

  2. tweenMax学习笔记

    tweenMax是一款缓动插件,能实现很多牛逼的效果,在网上看了些demo,确实很吊,虽说很多用CSS3也能做出来,但是技多不压身,学之. 网上的demo还是很多的,但是资料不多,唯一能够让我有思绪的 ...

  3. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  4. 【运维学习笔记】生命不息,搞事开始。。。

    001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...

  5. SSAN 关系抽取 论文笔记

    20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...

  6. pandas以前笔记

    # -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...

  7. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  8. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  9. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

最新文章

  1. 本地编译和交叉编译的区别
  2. 深入浅出设计模式原则之开闭原则(OCP)
  3. 专门讲讲这个MYSQL授权当中的with grant option的作用
  4. 现在学html4,HTML学习心得(4)
  5. python netsnmp_在Ubuntu18.04中关于Python使用netsnmp进行snmp编程
  6. 图像局部特征(三)--FAST角点检测子
  7. 【Python实例第28讲】核主成分
  8. 数学建模预测模型实例(二)---表白墙影响力量化模型
  9. 车联网仿真测试解决方案
  10. 最大子矩阵问题----悬线法
  11. python 谷歌翻译接口_使用python调用谷歌翻译接口实现英文到中文的翻译
  12. linux文件系统输入输出错误,linux-文件系统管理05-Xfs文件系统修复
  13. AOSP AOKP CM
  14. 阿里巴巴B2B电商算法首次对外公开
  15. VTK:二次六面体用法实战
  16. RK3288 系统升级流程
  17. 计算机打字教程ppt,计算机打字基础教学.ppt
  18. 云服务器共享文件格式设置,云服务器文件共享设置
  19. 无法识别USB设备解决办法
  20. 我的物联网项目(五)下单渠道

热门文章

  1. Kotlin读写Excel文件
  2. Python3网络爬虫开发实战(第二版)
  3. odoo 销售订单自动生成制造订单
  4. 基于python的租房网站
  5. 数据中心温度云图三维可视化
  6. VB写的软件加壳都没用,超强反调试反破解分析,检测OD调试器
  7. 奇迹mu服务器架设全教程
  8. VMware Workstation 虚拟机安装windows 10 系统步骤
  9. dsp6657的helloworld例程测试-第二篇-CFG文件
  10. Android锁屏界面监听按键,Android 监听锁屏/开屏事件