- TimelineMax 中文手册 / TimelineLite 中文手册
- TimelineMax()
- .add()
- .addCallback()
- .addLabel()
- .addPause()
- .remove()
- .removeCallBack()
- .removeLabel()
- .removePause()
- .to()
- .from()
- .fromTo()
- .staggerTo()
- .staggerFrom()
- .staggerFromTo()
- .set()
- delay
- paused
- useFrames
- tweens
- stagger
- align
- autoRemoveChildren
- smoothChildTiming
- repeat
- repeatDelay
- yoyo
- callbackScope
- onStart
- onStartParams
- onStartScope
- onComplete
- onCompleteParams
- onCompleteScope
- onReverseComplete
- onReverseCompleteParams
- onReverseCompleteScope
- onUpdate
- onUpdateParams
- onUpdateScope
- onRepeat
- onRepeatParams
- onRepeatScope
- .play()
- .pause()
- .paused()
- .restart()
- .resume()
- .reverse()
- .reversed()
- .seek()
- .timeScale()
- .tweenTo()
- .tweenFromTo()
- .delay()
- .repeat()
- .repeatDelay()
- .duration()
- .totalDuration()
- .progress()
- .totalProgress()
- .time()
- .totalTime()
- .endTime()
- .startTime()
- .yoyo()
- .autoRemoveChildren
- .data
- .smoothChildTiming
- .timeline
- .call()
- .clear()
- .currentLabel()
- .eventCallback()
- TimelineMax.exportRoot()
- .getActive()
- .getChildren()
- .getLabelAfter()
- .getLabelBefore()
- .getLabelsArray()
- .getLabelTime()
- .getTweensOf()
- .invalidate()
- .isActive()
- .kill()
- .recent()
- .shiftChildren()
.staggerFrom()
.staggerFrom( targets:Array, duration:Number, vars:Object, stagger:Number, position:*, onCompleteAll:Function, onCompleteAllParams:Array, onCompleteScope:* ) : *
为一组目标设定相同的起点变化属性,但是错开一定的时间,创建成一个间隔均匀的动画序列。将此动画序列添加到时间轴。 例如你想将一组文字段落按0.2s的间隔向上运动:
var textFields = [tf1, tf2, tf3, tf4, tf5];
myTimeline.staggerFrom(textFields, 1, {top:"+=150"}, 0.2);
.staggerFrom()
遍历整个targets
数组,为每个对象创建一个from()
动画。如果你在vars
中定义onComplete
,那么每个动画结束时都会触发,如果你定义onCompleteAll
,那么在全部排序动画完成时会触发。
使用position参数控制插入点。
tl.staggerFrom(myArray, 1, {left:100}, 0.25); //将排序动画添加至时间轴的末尾
tl.staggerFrom(myArray, 1, {left:100}, 0.25, 2); //将排序动画添加至时间轴的2秒处(绝对位置)
tl.staggerFrom(myArray, 1, {left:100}, 0.25, "+=2"); //将排序动画添加至时间轴的末尾后2秒处(相对位置)
tl.staggerFrom(myArray, 1, {left:100}, 0.25, "myLabel"); //添加至标记处
tl.staggerFrom(myArray, 1, {left:100}, 0.25, "myLabel+=2"); //添加至标记后2秒处
.staggerFrom()适用于TimelineMaxTimelineLite
.staggerFrom()的参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
targets | Array | 是 | 需要动画的对象或数组,如".obj"、["element1","element2"] |
duration | Number | 是 | 每个动画持续的秒数(或帧) |
vars | Object | 是 | 动画参数(CSS属性、延迟、重复次数等),例如myTimeline.staggerFrom([element1, element2, element3], 1, {left:100, top:200}, 0.25, 0, myFunction} |
stagger | Number | 否 | 每个动画的开始时间间隔(或帧),default = 0 |
position | * | 否 | 插入排序动画的位置。秒/帧或标签的绝对和相对位置,默认为"+=0" 。 |
onCompleteAll | Function | 否 | 整个排序动画完成时触发的函数,default = null |
onCompleteAllParams | Array | 否 | 传递给onCompleteAll函数的参数,default = null |
onCompleteScope | * | 否 | onCompleteAll函数的作用域 |
.staggerFrom() 示例
.box {
width:50px;
height:50px;
position:relative;
border-radius:6px;
margin-top:4px;
}
.green{
background-color:#6fb936;
}
.orange {
background-color:#f38630;
}
.grey {
background-color:#989898;
}
var tm = new TimelineMax();
tm.staggerFrom(".box", 1, {rotation:360, x:600}, 0.5);
.staggerFrom()返回值
返回该时间轴以便链式调用。
.staggerFrom()的补充说明
虽然stagger限定了动画目标使用相同的属性(如x:100, rotation:90
),但你可以使用cycle
来设定一个属性组(如 cycle:{x:[100,-100], rotation:[30,60,90]}
),还可使用function关键词(如 {x:function() { return Math.random() * 200; }}
)
function关键词接受两个参数:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
index | int | 否 | 排序动画的索引值 |
target | object | 否 | 目标元素 |
在动画的staggerFrom()
方法中immediateRender
(立即渲染)一般默认为true,你可以在vars中设置immediateRender:false
。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论