JS动画
Animate
会在动画过程中,触发以下事件:
a:enterStart
元素进入时触发a:enter
元素进入过程中触发a:enterEnd
元素进入结束时触发a:leaveStart
元素离开时触发a:leave
元素离开过程中触发a:leaveEnd
元素离开结束时触发
其中,事件回调函数为:
a:enterStart & a:enterEnd & a:leaveStart & a:leaveEnd
事件的回调:callback(element)
element
为进行动画的DOM元素
a:enter & a:leave
事件回调:callback(element, done)
element
为进行动画的DOM元素done
动画结束回调函数,该函数调用后,会触发相应的end
事件
一个使用jQuery动画的例子
<div>
<button
ev-click={self.set.bind(self, 'show', !self.get('show'))}
>展示或隐藏</button>
<Animate v-if={self.get('show')}
ev-a:enterStart={self.enterStart.bind(self)}
ev-a:enter={self.enter.bind(self)}
ev-a:leave={self.leave.bind(self)}
a:transition="none"
>show</Animate>
</div>
Intact.extend({
template: template,
enterStart: function(el) {
$(el).css({
opacity: 0,
marginLeft: '10px'
});
},
enter: function(el, done) {
$(el).stop(true, true).animate({
opacity: 1,
marginLeft: 0
}, {
complete: done
});
},
leave: function(el, done) {
$(el).stop(true,true).animate({
opacity: 0,
marginLeft: '10px'
}, {
complete: done
});
}
});