Сергей Соколов, было бы еще элегантнее если бы стили не вставлялись скирптом а были сразу написаны)
А про флекс я потому и говорю - комментить тег noindex, это просто служебный для индексации яндекса, и он будет прочтен даже закомментированный, а обертка выше уже флексбокс
А почему бы просто цсс-свойство order не поменять? айдишки можно считать статичными. Только noindex лучше в коммент взять, яндекс прочитает и так, зато никак влиять не будет
Мне кажется пихать все в колбэк не очень хорошая идея, попробуй сделать так чтоб прелоадер генерировал по завершении свое событие,а эти ребята его слушали
Ankhena, в общем я пораскинул тем что осталось от мозгов на сегодняшний день и родил вот это. Подозреваю можно было обойтись и без грида, но не без requestAnimationFrame( хотя логика все еще очень простая осталась. А самое главное он не "телепортирует" стейт во времени и можно его подрючить посреди изменения, и при закрытии учитывает реальную высоту содержимого а не то что было в прошлый раз насчитано. Прошлые попытки упростить это дело у меня заканчивались получением только одного из этих качеств)
Ankhena, спасибо) тоже думал в сторону keyframes, но при переключения состояния во время выполнения одной анимации получится рывок до конца и потом уже смена в обратную сторону. Наверно без разницы, долбежка спойлера не то чтобы целевой сценарий использования)
Ankhena, а какие свойства будут пригодны для того чтобы раскрытие спойлера анимировать? Самое простое и удобное изменить высоту с 0 до scrollHeight и установить transition для нее. Но так как после открытия спойлера высота контента может в нем меняться, чтобы не вешать наблюдатель достаточно изменить min-height до min-content (ну если бы он работал так как я ожидаю) с delay равным transition`у высоты. Таким образом у меня все лежит в одном месте а скрипт просто ставит scrollHeight в css-переменную, и пинает класс состояния
Идеальный код слишком долго писать, в реальной задаче у тебя вряд ли будет 10000000 элементов, в реальности ты за две минуты напишешь второй вариант, который будет работать с массивом на ну пускай 100, пускай 1000 элементов, это не вызовет значимого увеличения времени работы, поэтому он и оптимальный)
А фактически да, sort работает дольше чем один проход с запоминанием двух наименьших чисел