Jquery 动画完成后,然后删除
我编写了这个progressbar函数,Jquery 动画完成后,然后删除,jquery,animation,Jquery,Animation,我编写了这个progressbar函数, 我有个问题 如果执行off函数,但该条仍在进行动画制作,如何等到最后一个动画制作完成,然后删除dotarget.find('.progressbar').remove() var progressbar=(函数(){ var目标=$(“#容器”); var结构=``; 变量样式={ '位置':'固定', “顶部”:“0px”, “z指数”:“10000”, “指针事件”:“无”, “宽度”:“0px”, “高度”:“3px”, “背景色”:“红色” };
我有个问题
如果执行off函数,但该条仍在进行动画制作,如何等到最后一个动画制作完成,然后删除do
target.find('.progressbar').remove()代码>
var progressbar=(函数(){
var目标=$(“#容器”);
var结构=``;
变量样式={
'位置':'固定',
“顶部”:“0px”,
“z指数”:“10000”,
“指针事件”:“无”,
“宽度”:“0px”,
“高度”:“3px”,
“背景色”:“红色”
};
var重复间隔;
返回{
关于:函数(){
if(target.attr('data-progressbar')=='1'){
这个。off();
}
target.attr('data-progressbar','1');
var el=$(结构).prependTo(目标);
el.css(风格);
repeatInterval=setInterval(函数(){
el.animate({width:'100%},1000,function(){
el.css({
“宽度”:“0px”
});
});
}, 850);
},
关闭:函数(){
if(target.attr('data-progressbar')=='1'){
target.attr('data-progressbar','0');
clearInterval(repeatInterval);
//等待最后一个动画完成删除
target.find('.progressbar').remove();
}
}
};
})();
progressbar.on();
setTimeout(函数(){
progressbar.off();
}, 4000);
animate()
方法使用fx队列。然后可以使用promise()
接口:
target.find('.progressbar').promise().done(function() {
$(this).remove();
});
target.find('.progressbar').promise().done(function() {
$(this).remove();
});