Snackbar样式 - Angular Material 6

时间:2018-06-05 17:22:28

标签: angular angular-material angular6 angular-material-5

我使用Angular 6和Material 6,我需要将 margin-bottom:20px 设置为快餐栏。我遇到的问题是,当一个关闭而另一个打开时,动画会重叠。我该如何解决?

1)正确的方式(网络示例)。当必须显示新消息时,快餐栏会在出现新消息之前完全消失 (https://scrud.herokuapp.com/bookenter image description here

2)我的代码(不好)

enter image description here

示例:转到官方零食店示例(https://stackblitz.com/angular/qyllrqbvykv?file=styles.css)。转到" style.css"并添加这段代码并点击按钮上的很多时间。

.cdk-overlay-pane {
  margin-bottom: 10px !important;
}

1 个答案:

答案 0 :(得分:0)

Angular Material通过设置translateY变换的动画来产生滑动效果。我认为没有办法解决重叠问题。您可以尝试的是先故意拨打dismiss(),然后使用短暂延迟在open()中拨打setTimeout()。唯一的问题是,小吃店将始终有延迟,除非你能找到一种方法来避免延迟,如果没有小吃店打开。您可以使用afterDismissed()afterOpened()可观察对象来做到这一点,但这看起来很棘手。

原油示例:

openSnackBar(message: string, action: string) {
  this.snackBar.dismiss();
  setTimeout(() =>
    this.snackBar.open(message, action, {
      duration: 2000,
    }), 500
  );
}