Бит в вашем источнике, который говорит:
progress.progressbar('value', progress.progressbar('value') - 5);
Изменить на:
if(progress.progressbar('value') == 5) {
progress.animate({width: '0%'}, 200);
} else {
progress.progressbar('value', progress.progressbar('value') - 5);
}
И другой бит:
progress.progressbar('value', progress.progressbar('value') + 5);
Должно бытьизменено на:
if(progress.progressbar('value') == 0) {
progress.animate({width: '5%'}, 200);
} else {
progress.progressbar('value', progress.progressbar('value') + 5);
}
Для изменяющегося значения вы хотите использовать самозапускающуюся функцию, используя setTimeout (не setInterval, поскольку это не ожидает завершения одного вызова функции до следующего),Эта функция установит значение диапазона равным текущей ширине индикатора выполнения, а не значение индикатора выполнения, как я полагаю, даже если оно находится между двумя значениями по ширине, оно вернет только значение, которое вы в последний раз установили (то есть, кратное 5).
Вы также хотели бы установить значение индикатора выполнения в обратном вызове функций анимации, описанных выше, но обратите внимание, что при анимации от 0 до 5 вы хотите установить progress.find(".ui-progressbar-value").css({display: "block"})
.Я не могу дать вам ответы на все вопросы, поэтому я оставлю вас, чтобы выяснить, где это можно изменить.