Angulaire 2 faites Glisser vers le Haut et vers le Bas de l'Animation

J'ai récemment construit à la suite Angulaire 2 Lire Plus de composant. Ce que ce composant n'est réduire et développer les longs blocs de texte avec "Lire la suite" et "Lire Moins" liens de. Non pas sur la base du nombre de caractères, mais sur la base de la hauteur max.

import { Component, Input, ElementRef, AfterViewInit } from '@angular/core';

@Component({
    selector: 'read-more',
    template: `
        <div [innerHTML]="text" [class.collapsed]="isCollapsed" [style.height]="isCollapsed ? maxHeight+'px' : 'auto'">
        </div>
            <a *ngIf="isCollapsable" (click)="isCollapsed =! isCollapsed">Read {{isCollapsed? 'more':'less'}}</a>
    `,
    styles: [`
        div.collapsed {
            overflow: hidden;
        }
    `]
})
export class ReadMoreComponent implements AfterViewInit {

    //the text that need to be put in the container
    @Input() text: string;

    //maximum height of the container
    @Input() maxHeight: number = 100;

    //set these to false to get the height of the expended container 
    public isCollapsed: boolean = false;
    public isCollapsable: boolean = false;

    constructor(private elementRef: ElementRef) {
    }

    ngAfterViewInit() {
        let currentHeight = this.elementRef.nativeElement.getElementsByTagName('div')[0].offsetHeight;
       //collapsable only if the contents make container exceed the max height
        if (currentHeight > this.maxHeight) {
            this.isCollapsed = true;
            this.isCollapsable = true;
        }
    }
}

Et utilisé comme:

<read-more [text]="details" [maxHeight]="250"></read-more>

Le composant fonctionne bien. Maintenant, j'ai besoin d'ajouter un peu de glisser vers le haut/vers le bas de l'animation dans le composant de sorte que lors de la Lecture Plus le lien est cliqué sur le contenu de glisser vers le bas et lors de la Lecture moins est cliqué, le contenu de la diapositive jusqu'à spécifiées hauteur max.

Quelqu'un peut s'il vous plaît guide comment faire?

Voir ma réponse ici. L'exemple est à peu près exactement ce que vous essayez de faire.
Merci threeve, j'ai effectivement essayé d'ajouter le style ci-dessous les infos de mon ci-dessus, mais cela ne semble pas fonctionner. styles: [` div.s'est effondré { overflow: hidden; }, div { transition: hauteur 500ms l'aise; }`]
Si cela fonctionne pour vous, pouvez-vous valide ma solution s'il vous plaît?
La solution ne semble fonctionner que dans un sens - faites glisser vers le haut.

OriginalL'auteur Naveed Ahmed | 2016-06-15