Не беспокойтесь обо мне, это мой первый пост.
В настоящее время я работаю над колесом фортуны, которое синхронизируется с каждым подключенным устройством через node.js и websockets. Однако я хочу отключить начало анимации, когда пользователь присоединяется, когда колесо уже вращается, поэтому он будет показывать только последние секунды анимации без изменения замедления.
Анимация jquery сделанапростой пошаговой анимации, которая вращает колесо вокруг. Я уже пытался изменить параметры объекта шага 'fx', такие как fx.start или fx.pos. Хотя fx.start является только переменной, с которой начинается анимация, например 180 градусов, а fx.pos является всего лишь своего рода выходным параметром для изменения чего-либо в данный момент времени в анимации, например, цвета текста или чего-то подобного. Однако значение fx.pos нельзя ни изменить, ни изменить положение, в котором в данный момент установлена анимация. Я создал функцию для вращения колеса фортуны два раза, а затем она останавливается на заданной степени.
ТакжеЯ попытался изменить замедление, чтобы оно было на 50% линейным, на 50% размахом, но это заставляет анимацию выглядеть грязной, поскольку сначала она вращается с постоянной скоростью и внезапно вращается быстрее, чем медленнее.
function spinRoulette(deg, duration = 10000) {
deg = Math.round(deg);
$("img.roulette").animate(
{ now: '+='+(720+deg-getRotation()) }, {
duration: duration,
...
step: function(now, fx) {
if(now >= 360)
now -= 360;
$(this).css("transform", "rotate("+now+"deg)");
}
});
}
Если продолжительность будет меньше 10 секунд, начало анимации будет отключено. Итак, если сервер вращал колесо около 5 секунд назад, первые 5 секунд моей анимации должны быть отключены.