Bootstrap 4 анимировать изменение ширины столбца

У меня есть два таких столбца:

<div class="container">
    <div class="row">
        <div class="col-9"></div>
        <div class="col-3"></div>
    </div>
</div>

Я переключаю имена классов через angular на col-8 offset-2 и col-0 . col-0 это width:0;margin:0;padding:0.

Мне интересно, как анимировать ширину и положение столбцов.


person userqwert    schedule 23.03.2017    source источник
comment
Вы пробовали что-нибудь до сих пор?   -  person Zim    schedule 23.03.2017
comment
Я попробовал встроенную систему анимации angular, которая не будет работать, потому что мой div содержит выход маршрутизатора, я также пробовал стили, но не могу понять, как сделать так, чтобы ширина и положение плавно переводились без переноса на новую строку. Я пробовал столбцы с автоматической шириной, которые, похоже, тоже не работают.   -  person userqwert    schedule 23.03.2017
comment
stackoverflow.com/questions/12520751/animate-bootstrap-columns   -  person Arjan Knol    schedule 23.03.2017
comment
Я сделаю это, когда решу это   -  person userqwert    schedule 27.03.2017


Ответы (2)


Поскольку Bootstrap 4 использует flexbox, анимация перехода CSS не работает, если вы не используете числовое значение flex-grow или flex-shrink для столбцов.

.col-8 {
  flex-grow: 1;
  transition: all 400ms ease;
}

.col-0 {
  width: 0; 
  flex-shrink: 1;
  transition: all 400ms ease;
}

Демонстрация: http://www.codeply.com/go/4Un0Q8CvkQ


Чтобы анимировать столбцы сетки при изменении контрольных точек медиазапроса (вместо переключения классов через jQuery), вы можете просто использовать переход CSS для столбцов сетки.

.row [class*='col-'] {
    transition: all 0.5s ease-in-out;
}

Демонстрация: https://www.codeply.com/go/IHUZcvNjPS

person Zim    schedule 23.03.2017
comment
Анимации перехода CSS — это полный мусор. Найти ситуацию, когда они действительно работают, — большая редкость. - person Vahid Amiri; 28.03.2019
comment
@VahidAmiri Иногда они проходят тестирование, но полностью отклонять их глупо. - person Mooseman; 15.04.2019

Я изменил размер столбца, используя размеры столбцов, предоставленные Bootstrap. Например, col-2 в col-1. Затем я настроил переход только для определенного типа.

.row [class*='col-'] {
    transition: flex 0.5s ease-in-out, max-width .5s ease-in-out;
}
person Andres Abello    schedule 17.04.2020