加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular CDK了解叠加位置系统

发布时间:2020-12-17 06:52:25 所属栏目:安全 来源:网络整理
导读:我真的想了解叠加位置参数,但没有任何运气.我也找不到任何关于这个主题的文档. 以下代码是什么意思? const positions = [ new ConnectionPositionPair({ originX: 'start',originY: 'bottom' },{ overlayX: 'start',overlayY: 'top' }),new ConnectionPosit
我真的想了解叠加位置参数,但没有任何运气.我也找不到任何关于这个主题的文档.

以下代码是什么意思?

const positions = [
  new ConnectionPositionPair({ originX: 'start',originY: 'bottom' },{ overlayX: 'start',overlayY: 'top' }),new ConnectionPositionPair({ originX: 'start',originY: 'top' },overlayY: 'bottom' })
];
this.positionStrategy = this._overlay.position()
.flexibleConnectedTo(this.getConnectedElement())
.withPositions(positions)
.withFlexibleDimensions(false)
.withPush(false);

解决方法

关于Angular Overlay CDK的文档仍然不多.我学到的大部分内容来自他们的Github回购.

全球定位战略

这将是一个全球定位战略.您正在创建的叠加层将直接定位在屏幕上,而不是与元素相关.这适用于对话框弹出窗口或模态窗口.

overlayConfig = this.overlay.position().global()
    .centerHorizontally().centerVertically();

灵活连接战略

这是您想要用于工具栏,菜单,按钮弹出的东西.您必须传入对希望叠加层连接到的按钮的引用:

<button id="toolbar-icons" cdkOverlayOrigin mat-button class="toolbar-button" (click)="this.showAppContext()">

并在您的Component.ts中

showAppContext() {
  const appOverlayRef: AppOverlayRef = 
    this.appOverlayService.open(this.origin);
}

ConnectionPositionPair – 这是一个首选位置列表,从大多数到最不需要的位置.因此,它将首先尝试使用您传入的第一个位置.

originX:这将是“开始”,“结束”或“中心”.它是叠加层的附着点.如果您已将按钮传递给.flexibleConnectedTo函数,则表示该元素的开始,结束和中心.

originY:这将是“顶部”,“底部”或“中心”.这指的是传入元素的顶部,底部或中心.

所以{originX:’start’,originY:’bottom’}将是按钮的左下角.

overlayX和overlayY具有相同的选项,但请参考叠加层的附加位置. {overlayX:’start’,overlayY:’top’}将叠加层的左上角附加到我们指定的原点.

然后,正如你在数组中看到的那样,我们可以传入多个位置.如果叠加不适合第一个位置,它将尝试数组中的下一个位置.因此,如果叠加层在第一路上不适合屏幕,它将自动切换到第二个位置,这里定义为将底部的左上角连接到叠加层的左下角.

const positions = [
  new ConnectionPositionPair(
   { originX: 'start',new ConnectionPositionPair(
  { originX: 'start',overlayY: 'bottom' })];
];

withPush

您可以将withPush设置为true,如果所提供的位置都不合适,它将在屏幕上推送叠加.

代码仍然是查看文档的最佳位置:
https://github.com/angular/material2/blob/master/src/cdk/overlay/position/connected-position.ts

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读