我正在尝试使用jQuery和css过渡对一些动画进行排序。看起来容器的宽度应该是动画的,直到小部件完成从“顶部”css变化的过渡,但它们是一起触发的。
为什么
widget.one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(i) {
widget.css({'top': top});
widget.one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(i) {
container.css({'width': "19%"})
});
});以与此相同的序列制作动画吗?
widget.one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(i) {
widget.css({'top': top});
});
widget.one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(i) {
container.css({'width': "19%"})
});发布于 2013-01-30 06:33:58
在第一个示例中,您需要在添加transitionEnd事件之前设置css。我相信这就是你错的地方。
widget.css({
'top': '200px'
}).one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function (i) {
widget.css({
'top': '0px'
}).one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function (i) {
container.css({
'width': "300px"
}).one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function (i) {
container.css({
'width': "50px"
}).one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function (i) {
widget.css({
'width': "400px"
})
});
});
});
});只要在jQuery中使用one而不是on,就可以很好地链接转换。
查看此jsFiddle:
http://jsfiddle.net/gordyr/NSCd5/3/
我不确定您是否在做一些不同的事情,但希望这会有所帮助。
尽管就我个人而言,我会将其封装到一个帮助函数中,以避免编写太多特定于浏览器的代码……如下所示(未经过测试):
$.fn.transition = function(props, callback){
$(this).css(props).one('webkitTransitionEnd otransitionend oTransitionEndmsTransitionEnd transitionend', function (i) {
if(typeof callback == 'function'){
callback();
}
});
return this;
});如下所示:
$(element).transition({top:'0px'}, function(){
$(this).transition({top:'100px'}, function(){
$(this).transition({top:'400px'}, function(){
//Do something else
});
});
});当然,使用缓存的元素,而不是每次都使用$(this)…
https://stackoverflow.com/questions/14593063
复制相似问题