TweenMaxjs是一个性能很高的js动画框架,它与css3动画具有时间轴的概念。你可以很方便的把动画添加到一个时间轴队列里面去按照你需要的顺序去执行。

官网地址: http://greensock.com

怎么使用:

首先我们要做的是引入该文件,

第二步就是使用new关键字创建一个时间轴实例

  1. var T1;
  2. T1 = new TimelineMax({
  3. //delay: 0.3,
  4. //paused: true
  5. })

1.如果有一组动画同时开始动画,我们可以使用链式操作的方式实现

  1. T1 = new TimelineMax({
  2. // delay: 0.3,
  3. //paused: true
  4. onStart: function () {
  5. options.onStart();
  6. },
  7. onComplete: function () {
  8. options.onComplete();
  9. }
  10. })
  11. .fromTo(el.sm1, 1, {
  12. y: -100,
  13. opacity: 0
  14. }, {
  15. y: 0,
  16. opacity: 1,
  17. ease: Power3.easeOut
  18. })
  19. .fromTo(el.sm2, 1, {
  20. x: 100,
  21. opacity: 0
  22. }, {
  23. x: 0,
  24. opacity: 1,
  25. ease: Power3.easeOut
  26. })

2.如果有一组动画,按时间先后顺序一个一个的出现场景

我们可以使用FromTo()方法,positio参数时间设置不一样就行了

  1. T1 = new TimelineMax({
  2. //delay: 0.3,
  3. //paused: true
  4. })
  5. .fromTo([$(".Jan_sm_1")], 0.5, {//
  6. y: 50,
  7. opacity: 0
  8. }, {
  9. y: 0,
  10. opacity: 1,
  11. ease: Power3.easeNone
  12. },0.3)
  13. .fromTo([$(".Jan_txt_1")], 0.5, {
  14. y: 50,
  15. opacity: 0
  16. }, {
  17. y: 0,
  18. opacity: 1,
  19. ease: Power3.easeNone
  20. },0.6)
  21. .fromTo([$(".m-logo")], 0.5, {
  22. y: 50,
  23. opacity: 0
  24. }, {
  25. y: 0,
  26. opacity: 1,
  27. ease: Power3.easeNone
  28. },0.9)
  29. .fromTo([$(".sm-2")], 0.5, {
  30. y: -20,
  31. opacity: 0
  32. }, {
  33. y: 0,
  34. opacity: 1,
  35. ease: Power3.easeNone
  36. }, 1.5)

也可以通过添加一个标签(label),再相对于这个label去设置时间差

  1. T1 = new TimelineMax({
  2. //delay: 0.3,
  3. //paused: true
  4. })
  5. .add("labal")
  6. .fromTo([$(".Jan_sm_1")], 0.5, {//
  7. y: 50,
  8. opacity: 0
  9. }, {
  10. y: 0,
  11. opacity: 1,
  12. ease: Power3.easeNone
  13. },"labal")
  14. .fromTo([$(".Jan_txt_1")], 0.5, {
  15. y: 50,
  16. opacity: 0
  17. }, {
  18. y: 0,
  19. opacity: 1,
  20. ease: Power3.easeNone
  21. },'labal+=0.6')
  22. .fromTo([$(".m-logo")], 0.5, {
  23. y: 50,
  24. opacity: 0
  25. }, {
  26. y: 0,
  27. opacity: 1,
  28. ease: Power3.easeNone
  29. },'labal+=1')
  30. .fromTo([$(".sm-2")], 0.5, {
  31. y: -20,
  32. opacity: 0
  33. }, {
  34. y: 0,
  35. opacity: 1,
  36. ease: Power3.easeNone
  37. }, 'labal+=2')

也可以定义多条时间轴,把后面的时间轴添加到当前时间轴,就可以按顺序执行了

  1. T1 = new TimelineMax({
  2. //delay: 0.3,
  3. //paused: true
  4. })
  5.  
  6. .fromTo([$(".Jan_sm_1")], 0.5, {//
  7. y: 50,
  8. opacity: 0
  9. }, {
  10. y: 0,
  11. opacity: 1,
  12. ease: Power3.easeNone
  13. }, 1);
  14.  
  15. T2 = new TimelineMax({
  16. //delay: 0.3,
  17. //paused: true
  18. }).fromTo([$(".Jan_txt_1")], 0.5, {
  19. y: 50,
  20. opacity: 0
  21. }, {
  22. y: 0,
  23. opacity: 1,
  24. //rotation:90,
  25. ease: Power3.easeNone
  26. }, 1)
  27.  
  28. T3 = new TimelineMax({
  29. //delay: 0.3,
  30. //paused: true
  31. }).fromTo([$(".m-logo")], 0.5, {
  32. y: 50,
  33. opacity: 0
  34. }, {
  35. y: 0,
  36. opacity: 1,
  37. ease: Power3.easeNone
  38. },1)
  39.  
  40. T4= new TimelineMax({
  41. //delay: 0.3,
  42. //paused: true
  43. }).fromTo([$(".sm-2")], 0.5, {
  44. y: -20,
  45. opacity: 0
  46. }, {
  47. y: 0,
  48. opacity: 1,
  49. ease: Power3.easeNone
  50. }, 1)
  51. T1.add(T2).add(T3).add(T4);

注:如果不使用add把他们添加进去的话,4个会同事执行

3.如果有一组动画,效果相同。只是时间按选后顺序出现的场景

我们可以使用staggerFromTo()方法

参数如下

  1. .staggerFromTo( targets:Array, duration:Number, fromVars:Object, toVars:Object, stagger:Number, position:*, onCompleteAll:Function, onCompleteAllParams:Array, onCompleteScope:* )
  2. 第一个参数是目标元素---对谁做动画,可以睡是一组数组对象,可以是一个类似jQuery的对象($(“. myClass”)),也可以直接是一个css选择器(. myClass h2. myClass)
  1. T1 = new TimelineMax({
  2. delay: 0.3,
  3. //paused: true
  4. })
  5. .staggerFromTo([$(".Jan_sm_1"), $(".Jan_txt_1")], 0.5, {//错层队列动画,适合一组动画效果相同时间按选后顺序出现的场景
  6. y: 50,
  7. opacity: 0
  8. }, {
  9. y: 0,
  10. opacity: 1,
  11. ease: Power3.easeNone
  12. }, 0.3)

TweenMax学习一的更多相关文章

  1. TweenMax学习整理--特有属性

    TweenMax学习整理--特有属性   构造函数:TweenMax(target:Object, duration:Number, vars:Object) target:Object -- 需要缓 ...

  2. tweenMax学习笔记

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

  3. TweenMax动画库学习(六)

    目录            TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)            Tw ...

  4. TweenMax动画库学习(五)

    目录            TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)            Tw ...

  5. TweenMax动画库学习(四)

    目录            TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)            Tw ...

  6. TweenMax动画库学习(一)

    目录            TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)            Tw ...

  7. TweenMax动画库学习(二)

    目录            TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)            Tw ...

  8. TweenMax动画库学习(三)

    目录               TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)           ...

  9. TweenMax动画库学习

    之前在做HTML5移动端开发的时候,用的都是Animate.css,这个插件封装的的确很好,但是在做一些缓动方面的动画,它也有一定的不足之处,比如手要写一个连续的动画,需要不停的去重复写函数,使得代码 ...

随机推荐

  1. kettle系列-2.kettle源码结构分析

    kettle是一个开源产品,产品本身设计是很优秀的,代码应该是很多开源爱好者用业余时间贡献的,代码整体结构还是比较容易理解的,但具体到每一个控件内部就因人而异了,感觉还是挺复杂的,肯定别人考虑得比较全 ...

  2. C#自定义工业控件开发

    由于工作需要,调研过一段时间的工业控制方面的“组态软件”(SCADA)的开发,组态软件常用于自动化工业控制领域,其中包括实时数据采集.数据储存.设备控制和数据展现等功能.其中工控组件的界面展现的实现类 ...

  3. module_init的加载和释放

    转自:http://blog.csdn.net/dysh1985/article/details/7597105 像你写C程序需要包含C库的头文件那样,Linux内核编程也需要包含Kernel头文件, ...

  4. WCF服务承载(笔记)

    自托管(也做自承载) 承载 WCF 服务最灵活.最便捷的方法就是进行自承载.要能够自承载服务,必须满足两个条件.第一,需要 WCF 运行时:第二,需要可以承载 ServiceHost 的托管 .NET ...

  5. 【Mybatis架构】输入、输出映射

    前言综述:   其实在我们分析Mybatis的查询缓存或者是一些简介的时候,我们就不难看到有关于Mybatis输入输出映射的东西,比如说: 但是一直没有想起来系统的来总结一下这方面的相关知识,偶然看到 ...

  6. 【MongoDB】4.MongoDB 原子修改器的 极速修改

    文档转自:http://blog.csdn.net/mcpang/article/details/7752736 对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能够高 ...

  7. Android实战技巧之十二:Android Studio导入第三方类库、jar包和so库

    第三方类库源码 将一网友的XMPP代码从ADT转到AS时,发现其使用了第三方类库,源码放在了lib下,直接在AS中Import project,第三方类库并没有自动导入进来,看来需要自己动手了. 项目 ...

  8. wex5平台放入tabs组件后运行时显示空白

    用tabs组件设置为充满布局时--给window组件增加一个class:x-full-screen

  9. Node.js学习之简介

    1.简单的说Node.js就是运行在服务端的javaScript: 2.Node.js是一个基于Chrome javaScript运行时建立的一个平台: 3.Node.js是一个事件驱动I/O服务端J ...

  10. 玩转AR,联想将在2017年推出第二款Tango AR手机

    今年6月份,联想与谷歌合作推出了全球首款消费级AR手机Phab2 Pro,并获得很大的关注.作为谷歌Project Tango的一部分,这款手机的最大亮点是它搭载了三颗后置摄像头和多个传感器,机身背面 ...