Свернуть Angular2 ng2-bootstrap добавить переход/анимацию

Я использую этот https://valor-software.com/ng2-bootstrap/#/collapse и я хотел бы добавить анимацию/переход по высоте 0 - автоматически, но мы все знаем, что вы не можете добавить переход по высоте автоматически. Я хотел бы добавить эффект slideToggle с продолжительностью. пытался найти решение более 3-х дней...

есть ли известное решение для этого?


person ShadowFoOrm    schedule 22.08.2016    source источник


Ответы (1)


Анимация скоро появится в ng2-bootstrap. Вам просто нужно немного подождать.

1) Сегодня вы можете использовать в качестве обходного пути следующее:

@Component({
  selector: 'my-app',
  template: `
       <button type="button" class="btn btn-primary"
           (click)="isCollapsed = !isCollapsed">Toggle collapse
      </button>
      <div (collapsed)="setHeight(el, 0)"
           (expanded)="setHeight(el, 0);setHeight(el, el.scrollHeight)"
           [collapse]="isCollapsed"
           class="card card-block card-header block"  #el>
        <div class="well well-lg">Some content</div>
      </div>
  `,
  styles: [`
    .block {
      display: block !important;
      overflow: hidden !important;
      -webkit-transition: height .5s;
      transition: height .5s;
    }
  `]
})
export class App {
  isCollapsed: boolean = true;

  constructor(private renderer: Renderer) { }

  setHeight(el, height) {
    this.renderer.setElementStyle(el, 'height', height + 'px');
  }
}

См. также рабочий пример планкера.

2) Без директивы CollapseDirective вы можете сделать это так

@Component({
  selector: 'my-app',
  template: `
    <button type="button" class="btn btn-primary"
      (click)="height = height ? 0 : el.scrollHeight">Toggle collapse
    </button>

    <div       
      class="card card-block card-header block" [style.height]="height + 'px'" #el> 
      <div class="well well-lg">Some content</div>
    </div>
  `,
  styles: [`
    .block {
      overflow: hidden;
      -webkit-transition: height .5s;
      transition: height .5s;
    }
  `]
})
export class App {
  height = 0;
}

Пример планкера

person yurzui    schedule 11.09.2016
comment
Пока ждем обновления, у меня это работает! - person caballerog; 11.09.2016
comment
На сегодняшний день кто-нибудь знает, попала ли анимация в ng2-bootstrap? Собственно, даже лучше, с какой версии они приземлились, если вообще были? Не удалось выяснить их проблему github.com/valor-software/ng2-bootstrap /вопросы/355. Спасибо всем, кто может пролить свет - person superjos; 31.03.2017
comment
Спасибо! Альтернатива без сворачивающейся директивы прекрасно работает! Специально для тех, кто не хочет привязываться к угловому бутстрапу - person Jupo; 09.05.2017
comment
@yurzui, похоже, первый плункер больше не работает. - person DDiVita; 10.05.2017