Angular 2检查元素可见性

Ben*_*Ben 5 components visibility element angular

如何检查屏幕上是否显示元素(或组件)?

在特定情况下,我在引导程序下拉列表中有一个组件,并且我希望我的组件仅在下拉列表打开时执行某些操作(但我不想使用对下拉项的引用).

Ste*_*ith 0

如果您还没有使用 ng-bootstrap,我会使用它,特别是 NgbDropdown 组件。

https://ng-bootstrap.github.io/#/components/dropdown

它有一个 openChange 事件,当菜单打开或关闭时触发,您可以侦听该事件并触发您自己的逻辑。

它还有一个 isOpen 方法,您可以检查菜单是否打开。

如果这些选项不起作用,您可以禁用下拉按钮本身,并创建自己的按钮来切换下拉菜单,并使用手动触发器打开菜单并启动自定义逻辑,然后停止逻辑并关闭菜单,但要小心,不要让标准外观的界面元素表现得奇怪,因为这会让用户感到困惑。