You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm experiencing an issue where the Shepherd.js modal is not scrollable on iOS devices (iPhone and iPad) when used within a Vue 3 and Quasar project. The modal works as expected on other platforms (Android devices and desktop browsers), but on iOS, users cannot scroll through the modal content, making it unusable for content that exceeds the viewport height.
Expected Behavior
The Shepherd.js modal should be scrollable on iOS devices, allowing users to view all content within the modal by scrolling vertically.
Current Behavior
On iOS devices (Safari browser):
The modal displays, but users cannot scroll within the modal.
Attempting to scroll either scrolls the background content or has no effect.
On other platforms:
The modal is scrollable as expected.
Steps to Reproduce
Set up a Vue 3 project.
Install and configure Shepherd.js to display a modal with content exceeding the viewport height.
Open the project on an iOS device (iPhone or iPad) using Safari.
Trigger the Shepherd.js modal.
Attempt to scroll within the modal content.
Alternatively
You can go to the ShepherdJS home page and when the shepherd modal comes add more content to it by duplicating the current paragraphs until it becomes larger than the viewport height
Environment
Shepherd.js Version: 13.0.3
Vue Version: 3.4.38
Quasar Framework Version: 2.14.0
iOS Version: iOS 17.2
Devices Tested: iPhone 15, iPad Air (5th gen)
Browser: Mobile Safari
Development OS: macOS Ventura 13.6.9
Attempts to Resolve
I have tried the following solutions without success:
@komaromiGyorgy just a heads up that we've seen this issue and does seem like a bug. I don't have any obvious fix as of now and we've definitely had tours in the past where this worked, so not clear when it was introduced. Digging into ideas for a fix, but please let us know if you find something that works.
I might be completely wrong here, but I remember there being some framework or library folks were using and it messed with the styles because it wrapped stuff in shadow DOM or something. Is this ringing any bells or possibly the issue here?
@RobbieTheWagner I don’t think so. I tried reproducing on the docs website by just duplicating the text inside the body of the modal and the scrolling issue is present there as well.
Description
I'm experiencing an issue where the Shepherd.js modal is not scrollable on iOS devices (iPhone and iPad) when used within a Vue 3 and Quasar project. The modal works as expected on other platforms (Android devices and desktop browsers), but on iOS, users cannot scroll through the modal content, making it unusable for content that exceeds the viewport height.
Expected Behavior
The Shepherd.js modal should be scrollable on iOS devices, allowing users to view all content within the modal by scrolling vertically.
Current Behavior
Steps to Reproduce
Alternatively
You can go to the ShepherdJS home page and when the shepherd modal comes add more content to it by duplicating the current paragraphs until it becomes larger than the viewport height
Environment
Attempts to Resolve
I have tried the following solutions without success:
Adding
-webkit-overflow-scrolling: touch
:Changing
max-height
units:70dvh
with70vh
.Adjusting
overflow-y
:overflow-y: auto
tooverflow-y: scroll
.Modifying
.shepherd-element
positioning:Ensuring no parent elements have
overflow: hidden
orposition: fixed
.Trying to make the whole viewport scrollable by allowing the modal to overflow
Despite these attempts, the modal remains non-scrollable on iOS devices.
Additional Information
No Console Errors:
No Third-Party Libraries Interfering:
Body and HTML Overflow Properties:
overflow: hidden
is not applied tobody
orhtml
when the modal is open.Request
I would appreciate any guidance on resolving this issue. Specifically:
Thank You!
The text was updated successfully, but these errors were encountered: