Ionic 5 弹出框位置

Posted

技术标签:

【中文标题】Ionic 5 弹出框位置【英文标题】:Ionic 5 Popover Position 【发布时间】:2020-10-10 14:23:51 【问题描述】:

我正在使用ion-popover。

在文档中的示例中,当您单击右上角的三个点时,弹出框会显示在单击的按钮旁边。

什么是重现这个的好方法?有内置的方法吗?

由于我没有找到方法,我正在尝试手动设置弹出框的样式,但这也不起作用。

我的page.ts

const popover = await this.popoverController.create(
  component: OptionsComponent,
  cssClass: 'my-custom-class',
  event: ev
);
return await popover.present();

我的global.scss

.my-custom-class .popover-content 
  position: absolute;
  right: 0;
  top: 0;

我做错了吗?有没有更好的方法来解决这个问题?

【问题讨论】:

【参考方案1】:

解释了in the docs(强调我的):

要呈现弹出框,请在弹出框实例上调用 present 方法。为了相对于被点击的元素定位弹出框,需要将点击事件传递到当前方法的选项中。

html

<div (click)="showPopover($event)">
    <div>AAA</div>
</div>

在您的类中,将事件作为参数传递给您的方法:

showPopover(event) 
    const popover = await this.popoverController.create(
      event,
      component: OptionsComponent,
      cssClass: 'my-custom-class', // optional
    );
    return await popover.present();

除非您想设置模态内容的样式,否则不需要额外的 CSS。

【讨论】:

好的,谢谢!我不知道我是怎么错过的。但它仍然无法正常工作。让我用 html 部分更新问题 我一定是出了什么问题,因为我再次检查它确实有效。谢谢! 文档让我很困惑。这些选项专门用于“当前”方法? 'Present' 方法在没有传递任何选项的情况下被调用。它被传递给 CREATE 方法,而不是 'Present'? @ProxyTech 是的,我在网上找不到 PopoverController 的文档... 你有没有像这里一样使用'$event':showPopover($event)?没有'$'它对我不起作用?

以上是关于Ionic 5 弹出框位置的主要内容,如果未能解决你的问题,请参考以下文章

根据弹出框相对于窗口边缘的 X 位置更改 Bootstrap 弹出框的位置?

弹出框控件在选择不同的表视图行时更改其位置

如何在鼠标单击位置打开弹出框

IOS:弹出框位置

手机连不了电脑 弹出框提示:引用了一个不可用位置。。。不能定位

如何使用 Mapbox 通过弹出框获取当前位置