У меня проблема с сочетанием переходов страниц nuxt / vue-router и метода js rerequestAnimationFrame
. Я анимирую контейнер некоторых элементов с помощью rerequestAnimationFrame
и CSS-свойства transform: translate
. Например:
const step = timestamp => {
itemContainer.style.transform =
'translateX(' + this.animationStep * -1 + '%)'
this.animationStep = this.animationStep + 1
if (this.interrupt) window.requestAnimationFrame(step)
}
window.requestAnimationFrame(step)
this.interrupt
по умолчанию установлено на true
. Элементы этого контейнера, включая nuxt-link
(s) для маршрутизации на подстраницу.
Проблема:
Пока эта анимация запущена, и я нажимаю nuxt-link
, маршрутизатор запускается, а переход страницы - нет. Таким образом, страница подстраницы будет отображаться напрямую без какого-либо плавного перехода между страницами.
Если я удаляю цикл requestAnimationFrame
, переход страницы срабатывает корректно и все события beforeLeave
и т. Д. Тоже.
Я пытался добавить событие onclick для элементов или контейнера, чтобы установить для свойства this.interrupt
значение false
, но это не работает. Событие запускается, но я думаю, что каждое действие маршрутизатора выполняется до следующего кадра анимации.
Итак, есть ли решение дождаться анимации кадра, а затем запустить маршрутизатор и переходные действия? Или другой способ правильно запустить переход в этом случае?
Большое спасибо!