Сейчас по клику анимация оборота происходит единожды, чтобы произошло 2 оборота, нужно дважды произвести клик, но как сделать, чтобы кликнув один раз, анимация сработала 2,5 раза? (То есть сначала один оборот, потом второй оборот и потом прогресс остановился на половине оборота).
Пробовал цикл, но он не ждет анимации - получается что сначала как бы идет нормальный оборот, а после он идет уже в обратную сторону.
Вот код https://codepen.io/catcliff/pen/RwNyzvq?editors=0010
Антон Усачев, Да хоть все 380, только если напишите number = 250
При втором клике он уже не провернет на 250, а если это и не нужно тогда зачем вообще number, можно просто setProgress( 250, '.progressbar__thumb');. Если конечно number, где то не используется
twobomb, здесь возникает проблема в том, что при первом обороте все нормально, то есть желтая полоса прогрессбара заполняет черный круг, но вот второй оборот уже косячный, потому что здесь наоборот как бы черный фон запоняет желтый круг. А по идее нужно чтобы на втором круге также желтый фон заполнял черный =(
twobomb, в том и дело, что ничего в голову не лезет, уже несколько часов сижу и пытаюсь подобрать разные варианты, но все безрезультатно. Предложенный вариант, кстати, тоже не работает.
Как я понимаю проблема в settimeout, но если его убрать то анимация не успеет отработать....
twobomb, как происходит оборот? - желтое "кольцо" по часовой стрелке перекрывает черное, но сейчас
первый оборот происходит корректно, а второй оборот происходит так: черное кольцо перекрывает желтое - это не правильно ведь второй оборот должен быть визуально таким же как и первый- то часовой стрелке желтое "кольцо" перекрывает черное. Не понять?)
Sector567, Я так понимаю сейчас поворот происходит на 250%, и в итоге он наполовину перекрыт черный, наполовину желтым. А второй оборот полностью всё перекрывает желтым.
Визуально таким же он не может быть как и первый, потому что изначально всё кольцо серое до начала анимации, а вторая анимация происходит когда кольцо наполовину перекрыто желтым.
Попробуйте всетаки поиграться с этими параметрами, может здесь нужно 200 на 100 изменить или я не пойму как вам нужно. Нарисуйте позиции хотябы в которых должен останавливаться круг на первом, втором, третьем шаге...
var _isD = false;
click__me.addEventListener('click', function() {
setProgress(_isD ? number += 200: number += 250, '.progressbar__thumb');
_isD= true;
});
twobomb, сейчас анимация выглядит так.
Изначально круг черный (правильно)
Потом круг моментально становится желтым цветом (без анимации) и после происходит анимация заполнения черного цвета поверх желтого, а это не совсем верно - ведь анимация должна быть желтого цвета поверх черного.
P.S. а вот полуоборот, который идет за первым полным оборотом у вас выполнен правильно
Сложность у меня в том, что дальше анимаии этого полного оборота я продвинуться не могу.
То есть я не могу сделать например чтобы такой полный оборот произошел два раза подряд или полтора раза...
twobomb, вот, нашел другой пример прогрессбара в сети и изменил его немного.
То есть нужно, чтобы анимация была такая как на данном примере.
Но проблема в том, что сейчас все завязано на setTimeout, может быть можно реализовать такую же анимацию, но чтобы без setTimeout? https://codepen.io/catcliff/pen/MWYBygO?editors=1010
ну я предполагал, что после первого оборота нужно сначала сбросить плавность и после обнулить значения, тем самым новый оборот как бы повториться сначала (естественно плавность в этот момент нужно вернуть обратно)
Я ни фига не понял. Что значит "сбросить плавность и после обнулить значения"?
Я могу предложить примерно так:
Изначально круг имеет какой-то цвет Икс. На первом круге его постепенно заливают цветом Игрек. По окончании - начинают заливать цветом Зет. И так по скольким-то цветам.
Или так:
Круг заливается цветами с постепенным изменением. Трёхмерный цвет в координатах RGB меняется так, чтобы не было самопересечений. Периодичность изменения цвета н совпадает с периодичностью обхода круга.
Karpion, вот, нашел другой пример прогрессбара в сети и изменил его немного.
То есть нужно, чтобы анимация была такая как на данном примере.
Но проблема в том, что сейчас все завязано на setTimeout, может быть можно реализовать такую же анимацию, но чтобы без setTimeout? https://codepen.io/catcliff/pen/MWYBygO?editors=1010