Ключевые кадры Vue JS с js

Я пытаюсь установить значение преобразования @keyframe программно.

.spin {
    animation-name: spin;
    animation-duration: 3s;
    animation-timing-function: ease-out;
    animation-fill-mode: both;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(1665deg);
    }

Мне нужно изменить значение 100% на значение, которое я генерирую с помощью JavaScript.

spinWheel() {
    let segments = [], segmentSize, winningSegment, app = this;

    app.spin = 'spin';
    //each segment
    segmentSize = 360 / 6;
    for(let i = 0; i <= 5; i++)
    {
        segments[i] = i*segmentSize;
    }
    winningSegment = Math.floor(Math.random() * 6);
    let start = winningSegment === 0 ? 0 : segments[winningSegment];
    let end   = winningSegment === 5 ? 360 : segments[winningSegment+1];
    let winningArea = {start: start  , end: end };

    app.start = 0;
    app.end = (360 * Math.floor(Math.random() * (30 - 15 + 1) + 15)) + Math.floor(Math.random() * (winningArea.end - winningArea.start + 1) + winningArea.start);

}

Итак, когда запускается метод spinWheel()

100% {
    transform: rotate(end);
}

Изменится на значение app.end.

Я просто не могу понять, как это сделать. Любая помощь очень ценится.

Создание или изменение ключевых кадров в JavaScript проблематично. Готовы ли вы использовать API веб-анимации? Вам понадобится полифил для любых браузеров, отличных от Chrome, но есть хороший полифил.

Fissure King 17.05.2018 19:38

открыт для всего, что приводит к решению, я использую VueJs (потому что я использую бэкэнд laravel, и vue прилагается к нему), если для этого есть что-то доступное. Я бы не возражал против чего-то, что запускает события, когда переход также завершен, поскольку мне это понадобится в ближайшее время.

Tom Jolly 17.05.2018 19:41

Тогда обязательно взгляните на API веб-анимации. Он позволяет создавать анимацию на основе ключевых кадров с использованием element.animate(keyframes, options), который возвращает экземпляр Animation, который генерирует событие finish. Похоже, идеально подходит.

Fissure King 17.05.2018 20:31
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
555
0

Другие вопросы по теме