我要做的是:
我认为这段代码会提供解决方案:
$('#savebar').fadeIn('fast', function () {
$('#savebar .bar').animate({width: '100%'}, "slow", function () {
$('#savebar').fadeOut('fast', function () {
$('#savebar .bar').css({'width':'0%'});
});
});
});
问题似乎是animate完成函数早期执行。这是因为浏览器没有足够快地呈现进度条,或者我在这里遗漏了什么?
这是一个说明问题的jsfiddle:http://jsfiddle.net/dub6P/
答案 0 :(得分:5)
似乎fadeOut发生得太快了。尝试在fadeOut之前添加延迟。动画看起来很不错IMO:http://jsfiddle.net/dub6P/7/
$('#btn').click(function () {
$('#savebar').fadeIn('fast', function () {
$('#savebar .bar').animate({width: '100%'}, "slow", function () {
$('#savebar').delay(1000).fadeOut('fast', function () {
$('#savebar .bar').css({'width':'0%'});
});
});
});
});
答案 1 :(得分:3)
减慢淡出功能,似乎工作正常。
$('#btn').click(function () {
$('#savebar').fadeIn('fast', function () {
$('#savebar .bar').animate({width: '100%'}, "slow", function () {
$('#savebar').fadeOut(1500, function () {
$('#savebar .bar').css({'width':'0%'});
});
});
});
});
答案 2 :(得分:0)
我认为制作动画更快,渐弱渐弱会解决:
$('#btn').click(function () {
$('#savebar').fadeIn('fast', function () {
$('#savebar .bar').animate({width: '100%'}, 500, function () {// 500 ms used
$('#savebar').fadeOut(1500, function () { // 1500 ms used
$('#savebar .bar').css({'width':'0%'});
});
});
});
});