Bootstrap 4 Складная Карта-Прерывистая Анимация

Я использую Bootstrap 4 и создал карту с a .карточка-заголовок И.карточный блок вот так:

<div class="card">
    <div class="card-header">
        <a data-toggle="collapse" href="#test-block" aria-expanded="true" aria-controls="test-block">
            card header
        </a>
    </div>
    <div id="test-block" class="card-block">
        card block
    </div>
</div>

Я хочу иметь возможность щелкнуть заголовок Карты, чтобы переключить блок карты. Я попытался использовать механизм коллапса Bootstrap (вы заметите data-toggle="collapse" в заголовке карты). Это работает , но анимация чрезвычайно изменчива.

Я не могу выяснить, почему. вот пример на codepen.

3 ответов


лага проблема:

проблема .карточный блок class, он добавляет заполнение 1.25 rem по умолчанию.

Если вы удалите карточный блок класса из тестового блока div#и создадите div внутри с карточным блоком класса (чтобы вы сохранили требуемое заполнение), проблема с лагом исчезнет.

Clicky проблема:

в вашем #test-block нет класса с collapse, поэтому его нужно добавить сначала это. Вот почему это работает со второй попытки.

Если вы добавите класс с именем "collapse" в div#test-block, ваша проблема с лагом исчезнет.

Если вы хотите, чтобы панель была открыта по умолчанию, добавьте класс "in". например, "collapse in".

У меня есть следующий код:

<div class="card">
    <div class="card-header">
        <a data-toggle="collapse" href="#test-block" aria-expanded="true" aria-controls="test-block">
            card header
        </a>
    </div>
    <div id="test-block" class="collapse">
        <div class="card-block">
            card block
        </div>
    </div>
</div>

вероятно, поэтому bootstrap 4 все еще находится в alpha. Это, вероятно, будет исправить.

единственное решение, которое я нашел, это свернуть ваш card-block добавить класс collapse, а затем удаление его заполнения css:

.card-block{ padding:0; }

#test-block имеет состояние по умолчанию:

    <div id='test-block' class='card block'>

при нажатии один раз класс изменяется на расширенную версию

    <div id='test-block' class="card-block collapse in" aria-expanded="true">

таким образом, div не имеет правильного состояния по умолчанию. Измените состояние, чтобы отразить collapse in и aria-expanded=true и это должно потребовать только 1 щелчок.

Я понятия не имею, почему анимация рывками. :(