css - Angular 2如何在幻灯片中淡化页面的其余部分

标签 css angular

我很乐意提供我想要完成的内容的屏幕截图,但它的专有设计并不能,所以我会尽力描述我想要的内容。

我提前道歉,因为我不是最流利的前端开发人员,但每天都在学习新事物。当用户单击一个也执行 Angular 2 动画的按钮时,我的页面上有一个幻灯片: typescript :

animations: [
 trigger('slide', [
  state('true', style({
    transform: 'translate3d(0, 0, 0)'
  })),
  state('false', style({
    transform: 'translate3d(100%, 0, 0)'
  })),
  transition('1 => 0', animate('400ms ease-in-out')),
  transition('0 => 1', animate('400ms ease-in-out'))
 ]),
]
....
 openBucket(nb) {
   this.bucketState = true;
   nb.openBucket(this.bucketState);
 }

HTML:

....
<div class="review-button" (click)="openBucket(nb)"></div>
<new-bucket #nb [@slide]="bucketState"></new-bucket>
...

因此,在打开之前,页面看起来很正常,但在滑入之后,我希望左侧覆盖有与 slider 齐平的半透明蓝色。这是怎么做到的?谢谢!

最佳答案

您可能需要面纱。它具有全屏尺寸并且不透明度设置小于 1,例如 0.6。它可以具有特定的背景颜色(在您的情况下为蓝色)。当幻灯片打开时显示它。

像这样:

HTML:

<div @someAnimation class="veil" *ngIf="bucketState"></div>

CSS:

 .veil{
       position: fixed;
       top: 0;
       left: 0;
       overflow: hidden;
       height:100vh;
       width:100vw;
       backgound-color: blue;
       opacity:0;
       z-index: 2 // should be more than the rest of the screen but less than the slide
    }

动画:

 trigger('someAnimation', [
        transition(':enter', [
            style({ opacity: 0 }),
            animate('900ms ease-in', style({ opacity: 1 }))
        ]),
        transition(':leave', [
            style({ opacity: 1 }),
            animate('900ms ease-in', style({ opacity: 0 }))
        ])
    ]);

关于css - Angular 2如何在幻灯片中淡化页面的其余部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46083930/

相关文章:

javascript - window.print() 用 Electron 生成PDF

javascript - 粘性 header 锯齿状运动

javascript - 如何在 React 中使用 javascript 模块对象(HTML + JS 嵌入)

新选项卡中的 Angular 打开组件,无需引导整个应用程序

Angular 2 单元测试在嵌套 ngModel 元素时必须多次调用 whenStable

angular - 在 Y 轴上显示时间 - 气泡图

javascript - Ionic 3 - 深层链接 - URL 未出现

jquery - 将CSS从一个元素传递到另一个元素

css - Jekyll 的图像设置在不同页面上的工作方式不同

html - 如何使容器宽度依赖于特定子项的宽度?