Подтвердить что ты не робот

Использовать переход на flexbox порядке

Есть ли способ иметь переход по порядку элементов гибкой коробки?

Другими словами, могу ли я получить это (подробности в этом fiddle)

#container {
    display: flex;
}
#container:hover div:last-child {
    order: -1;
}

анимированный (элемент, получающий новую позицию, занимает позицию со временем), пожалуйста?

4b9b3361

Ответ 1

К сожалению нет: атрибут заказа анимируется, но только как целые числа. Это означает, что для каждого шага/кадра анимации он будет интерполировать значение полы на целое число. Таким образом, элементы будут отображаться только в слоте, который приводит к вычисленному целочисленному значению, никогда не находясь между ними каким-либо плавным способом движения.

Это технически еще анимация: вычисленная целочисленная позиция должна по-прежнему следовать правилам синхронизации и правилам ключевого кадра анимации, а именно, что элементы "прыгают" из положения в положение по мере их изменения.

См. https://developer.mozilla.org/en-US/docs/Web/CSS/integer#Interpolation

Ответ 2

Как заявил Эмиль, он только оживляет целое число. Однако я думаю о взломе:

  • Поместите элемент, который вы хотите отобразить в оболочке с 1/10 из height, установите обертку overflow: visible
  • Затем поместите 9 разделительных элементов между этими обертками с тем же height.
  • Поместите order и transition на всех них.
  • Измените order обертки и посмотрите, как она переходит.

К сожалению, это уродливое и работает только в Firefox. Вот что я тестировал в Angular

Ответ 3

Если вы просто заинтересованы в анимировании списков, проверьте mixitup. Супер легкая реализация и

https://www.kunkalabs.com/mixitup/

Ответ 4

На самом деле я не отвечаю на вопрос, потому что я не использую свойство заказа.

Но я хотел сделать что-то похожее на то, что вы ожидаете, и, наконец, решил добавить атрибут data-order в мои элементы, которые я изменяю с помощью Javascript, и анимировать элементы с помощью CSS. https://codepen.io/anon/pen/OdgBrg

Это может быть полезно, если вы хотите анимировать слайдер (или что-то еще), но хотите сохранить порядок элементов в HTML для целей доступности, что является одним из полезных вариантов использования свойства order. См. Https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_F Flexible_Box_Layout/Ordering_Flex_Items#The_order_property_and_accessibility