Animation pixelisation? Или плавность шага анимации jQuery

Решил прикрутить прогресс бар к своему проекту, сделал просто.
**Javascript**
function progress(time) {
  $('.bar-wrap').animate( {
    width:'100%'
  },time,'linear');
}
progress(30000);

Ширина бара в пикселях 250, я заметил что каждую секунду прибавляется n количество пикселей, а не 1. Так вот вопрос как можно сделать так, что бы прибавлял один пиксель? Указывать
width:'250px'
нельзя, ширина бара динамическая. Главная задача на самом деле это сделать невидимый процесс прогресса. Разные easyng-s не помогают.
  • Вопрос задан
  • 3902 просмотра
Пригласить эксперта
Ответы на вопрос 3
hell0w0rd
@hell0w0rd
Просто разработчик
Мне кажется вам нужно написать кастомный тип анимации
anton.shevchuk.name/javascript/jquery-for-beginners-write-animation-plugins/
Ответ написан
Комментировать
SiDChik
@SiDChik
30000 — это 30 секунд, логично же что в одну секунду будет порядка 8-9 пикселей в секунду. а вообще проще, если скорость 1 пиксель одна секунда, то и сделать интервал секундный в котором будет увеличение прогресса, проверка на остановку анимации и тд:
Ответ написан
Комментировать
в jQuery анимация по возможности делается через requestAnimationFrame, если он есть, так что шаг анимации всегда соответствует частоте кадров монитора(если нет сложной логики, которая все тормозит).
Если rAF не поддерживается, частота задается с помощью jQuery.fx.interval
Анимации на jQuery почти всегда по возможности плавные, если что-то дергается — надо смотреть основной поток кода, там скорее всего логика отрабатывает достаточно тяжело.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы