Я использую блок each
для итерации по массиву элементов и блок if
внутри него, чтобы проверить, какие из элементов должны быть показаны, а переход fly
применяется к внутренним элементам с переменной, которая контролирует направление переход так, что если пользователь нажимает следующий, все идет и входит из ‹- таким образом, а если они нажимают предыдущую кнопку, все идет и входит из -› таким образом.
Он отлично работает, за одним исключением. Когда пользователь идет в одном направлении, а затем щелкает в другом направлении, выходная анимация для текущего показанного элемента идет в неправильном направлении, но только на первой выходящей анимации, а затем падает в линию. Вот REPL проблемы: https://svelte.dev/repl/1aa3608458f84a4fb4d93b10b47ae3f1?version=3.25.0
Есть ли способ заставить первую анимацию Outro идти правильным путем после смены направления? Я чувствую, что чего-то не вижу.
Изменить:
Существует проблема Github, которая в некоторой степени связана с этой проблемой.
Как я отмечал в проблеме Github, похоже, что такое поведение влияет только на элементы внутри блока each
. Этот REPL показывает поведение, работающее должным образом с динамическими направлениями x.
Я придумал этот обходной путь, где я перемещаю переход к родительскому элементу блок each
и продублируйте его, а затем выберите альтернативный блок each
.
Я хотел бы узнать, есть ли лучший способ обхода, поскольку дублирование болезненно. В противном случае я просто сделаю его компонентом и спрячу от стыда.