mapbox / mapbox/mapbox-gl-js

Controls disappearing with -webkit-overflow-scrolling: touch; in Safari iOS when scrolling

Open
#9,812 0 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug :lady_beetle:
Dominant language
TypeScript
Stars
12.4k
Forks
2.4k
PR merge metrics
No merged PRs in 30d

Description

On Safari for ios 13.5.1 when the prop `-webkit-overflow-scrolling: touch` is used, the controls at the bottom of "Mapbox" & "Improve this map" and also any other element on top of the map, disappear while scrolling until a certain point and reappear when in other scrolling positions.

The map is rendered but the controls don't show up until you scroll. If you scroll back to the original position, they disappear again.

This is happening in an Ionic Angular project v ^5.0.0 (latest version). They are using the prop `-webkit-overflow-scrolling: touch` on the main element for rendering the app (``). After inspecting what could be causing the issue, I found the prop mentioned was the issue. Removing that prop, everything works as expected. Here you can see the [property applied](https://github.com/sergiomilici/mapbox-scroll-test/blob/master/bug_info/property.png).

This is not happening in Chrome or Safari for Desktop.

**See the issue on the [video](https://github.com/sergiomilici/mapbox-scroll-test/blob/master/bug_info/20200622_181720.mp4)**

Here is a video to see the problem.

I added a button ("Locate me") that in the real app it will show the GPS icon to locate the user. You can see it disappearing too.

**mapbox-gl-js version:**: 1.11.0

**browser**: Safari for ios 13.5.1

### Steps to Trigger Behavior

1. Clone the project `git@github.com:sergiomilici/mapbox-scroll-test.git`
2. Run `npm install`
3. Update your Mapbox access_token in `src/app/home/home.page.ts` line 17
4. Run `ionic serve --external`
5. Access the app in ios safari (http://your_ip:8100 or other port if this one was used)
6. Try to scroll to see the issue

### Expected Behavior

Controls are shown all the time

### Actual Behavior

Controls are hidden while scrolling

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue from the linked mapbox-scroll-test project: run npm install, update the token in src/app/home/home.page.ts line 17, then use ionic serve --external and test in iOS Safari 13.5.1. Compare scrolling with -webkit-overflow-scrolling: touch enabled and disabled. Done means Mapbox, Improve this map, and other map-overlay controls remain visible while scrolling.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
frontend, web-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.