【发布时间】:2016-12-29 02:53:57
【问题描述】:
我正在使用这个 https://valor-software.com/ng2-bootstrap/#/collapse 我想在高度 0 上添加动画/过渡 - 自动,但我们都知道你不能在高度自动上添加过渡。 我想添加一个带有持续时间的 slideToggle 效果。 试图寻找解决方案超过 3 天...
对此有已知的解决方案吗?
【问题讨论】:
标签: angular collapse ng2-bootstrap
我正在使用这个 https://valor-software.com/ng2-bootstrap/#/collapse 我想在高度 0 上添加动画/过渡 - 自动,但我们都知道你不能在高度自动上添加过渡。 我想添加一个带有持续时间的 slideToggle 效果。 试图寻找解决方案超过 3 天...
对此有已知的解决方案吗?
【问题讨论】:
标签: angular collapse ng2-bootstrap
动画即将在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');
}
}
另请参阅 Plunker Example
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;
}
【讨论】: