Skip to content

bug(FlexibleConnectedPositionStrategy): Incorrect position on mobile browsers when address bar is hidden #27739

Open
@Ruudt

Description

@Ruudt

Is this a regression?

  • Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was

No response

Description

FlexibleConnectedPositionStrategy seems to incorrectly calculate positions for overlays with overlayY: bottom on mobile devices, but only when the address bar is hidden. It doesn't matter if the page is scrolled or how the elementRef is positioned. As soon as the address bar is visible there is no issue.

Reproduction

StackBlitz link: https://building-tooltip-ovwh6v.stackblitz.io/

Steps to reproduce:

  1. Open the example at https://building-tooltip-ovwh6v.stackblitz.io/ in a mobile browser (tried on Pixel 7 and iPhone 13).
  2. Scroll down until the address bar is removed, but the button still has enough room on top to display a tooltip.
  3. Hover over or click the tooltip button located at the bottom of the page.
  4. The tooltip that should appear above the button is displayed in the wrong position.
  5. Scrolling to the top moves the tooltip to the correct location.

Expected Behavior

The tooltip should appear in the correct location, even when the address bar is hidden on a mobile browser.

Actual Behavior

On mobile browsers, when using a position strategy with overlayY: 'bottom' for a tooltip, the tooltip's location becomes incorrect when the address bar is hidden. This seems to be affecting the calculation of the tooltip's position, placing it in the wrong location on the page.

Position Strategy Used:

{
  originX: 'center',
  originY: 'top',
  overlayX: 'center',
  overlayY: 'bottom',
  offsetY: -8,
}

Environment

  • Angular: 16 (example shows it exists in 7 as well)
  • Browser(s): Chrome
  • Operating System: iOS/Android

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2The issue is important to a large percentage of users, with a workaroundandroidIssues specific to Androidarea: cdk/overlayiosIssues specific to iOS

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions