Может быть, кто-то найдет это полезным. Я пытался создать красивые и простые переходы между страницами на своем веб-сайте.
Элемент для анимации: #container
Класс анимации: .animated
CSS:
.animated { animation: fadeIn 500ms; }
JavaScript (с jQuery):
document.addEventListener('turbo:before-render', async (event) => { event.preventDefault() if (!$(event.detail.newBody).hasClass('animated') && !$('#container').hasClass('animated')) { await animateIn(event.detail.newBody) } event.detail.resume() }) document.addEventListener('turbo:visit', (event) => { if ($('#container').hasClass('animated')) { $('#container').removeClass('animated') } }) const animateIn = function(body) { $(body).find('#container').addClass('animated') }