Как вариант, можно добавить дополнительный параметр, например, initial вдобавок к percentage. Т.е. чтобы не от 0 до percentage, а от inital до percentage.
Тут два варианта:
1. Хранить текущее состояние вне плагина, т.е. во внешнем коде, в котором вы вызываете ваш плагин
2. Записывать элементу, на котором вы вызываете свой плагин, дата-атрибут с текущим значением
Но если уж делать хорошо, то лучше переделать ваш плагин так, чтобы не инициализировать его каждый раз, а сделать это один раз, а затем вызывать только метод update. Тогда текущее значение можно хранить внутри самого плагина. Для это есть jQuery UI Widget Factory.
Григорий Хримян, можно. Зная ширину всего прогрессбара и ширину его "закрашенной части", можно вычислить текущее значение прогресса, и ничего хранить, получается, не придется. И это будет работать. Но лично я бы так не делал, поскольку это попахивает колхозом, потенциальными багами, несоответствием принципам SOLID.
kulaeff, спасибо. Значение прогресса это просто css-ширина в процентах. Она ведь известна.
Зачем что-то рассчитывать и хранить?
В общем я сделал так. Стартовую инициализацию одну сделал. Потом просто в коде меняю ширину вручную, без обращения к плагину) Единственный минус - без анимации. Ну да ладно. Пока прототип.
Можно вообще обойтись без .animate(), а просто устанавливать css-ширину, а чтобы была анимация, достаточно добавить transition: width 1s ease-out, например.