Проблема в том, как была разработана функция разнесения.
Он принимает смещение элемента сверху и слева. он измеряет их для вычислений относительно положения, на которое нужно вернуться, расстояния до пути и т. д. Без этих значений невозможно сделать эти определения. Он не был построен достаточно надежно для поддержки динамического расчета; и по праву так.
Я могу доказать эту теорию в трех примерах.
Первый:
Проблема анимации в очереди (как описано)
Во-вторых:
Попытка внедрения с использованием setTimeout возвращает ошибку offset.top () пусто
Это дает вам возможность ясно видеть, почему это происходит. Наиболее очевидный ответ заключается в том, что нет исправления для этого решения, если вы не изменили основные функциональные возможности кода.
Это подводит меня к последнему примеру. В приведенном ниже примере мы заключаем элемент в элемент div. мы анимируем позицию родительского элемента и взрываем дочерний элемент. давайте посмотрим, как это работает.
Третье:
Как мы видим здесь, проблема заключается в том, как рассчитывается смещение.
Он может получить конец и начало, но не может получить смещение в середине анимации.
Я полагаю, что это проблема, о которой вы тоже говорили, и, к сожалению (по большому счету), вы ничего не можете с этим поделать, кроме как написать ее самостоятельно.