gpt4 book ai didi

javascript - TransitionEnd 触发太早

转载 作者:行者123 更新时间:2023-11-30 08:54:45 24 4
gpt4 key购买 nike

我正在尝试使用 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%"})

});

最佳答案

在您的第一个示例中,您需要在添加 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) ...

关于javascript - TransitionEnd 触发太早,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14593063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com