Open Getz85 opened 2 years ago
Hi @Getz85! 👋
It looks like you provided an invalid or unsupported reproduction URL. Do not use any service other than Codepen, jsFiddle, Codesandbox, and GitHub. Make sure the URL you provided is correct and reachable. You can test it by visiting it in a private tab, another device, etc. Please edit your original post above and provide a valid reproduction URL as explained.
Without a proper reproduction, your issue will have to get closed.
Thank you for your collaboration. 👏
I can't reproduce the issue on a jsFiddle (https://jsfiddle.net/0sep4drt/show), probably because the page is included in a iframe. But this is can be easily reproduce on the documentation page.
This is a bug in iOS, we hope it'll be fixed in the next few years :) https://stackoverflow.com/questions/68094609/ios-15-safari-floating-address-bar For the moment they are changing the behavior on most of the releases
We have a chat with Quasar Layout and <q-footer>
with message composer "working" in Safari and WKWebView.
It can never be perfect until they fix Safari, but this may (or may not) help:
diff --git a/node_modules/quasar/src/plugins/Screen.js b/node_modules/quasar/src/plugins/Screen.js
index 3eef4ea..3dbbcfb 100644
--- a/node_modules/quasar/src/plugins/Screen.js
+++ b/node_modules/quasar/src/plugins/Screen.js
@@ -62,8 +62,8 @@ export default defineReactivePlugin({
this.__update = force => {
const
- w = window.innerWidth,
- h = window.innerHeight
+ w = window.visualViewport !== void 0 ? window.visualViewport.width : window.innerWidth,
+ h = window.visualViewport !== void 0 ? window.visualViewport.height : window.innerHeight
if (h !== this.height) {
this.height = h
This was not the only change I've made, but without this, anything else I did had no effect.
Btw: this Blue footer area on the image from the Issue-Opener is actually not really solvable
With / since iOS 15, Safari makes this "block element" if the
body
gets the position: fixed
attribute (EDITED)
So actually the prevent background-scroll process for iOS in quasar is working.
(i am working with a not really nice patch, and instead of the position relative i am using the FL3NKEY/scroll-lock ).
But since iOS15 also this workaround got a unhappy effect. If Adressbar is bottom, the Adressbar slide in effect if scrolling inside the modal is happening, and if the Adressbar is top, the Safari Footer and Adressbar slides in ..)
@ibrainventures In fact the other issue was correct :(
For this one the solution is to use <meta name="viewport" content=".., viewport-fit=cover">
on iOS
After reading a second time, i saw the difference ... :-/
@pdanpdan but if the issue-opener means that blue block area, this is afik independent of the viewport-fit meta / inset safe-area. This happens on the actual Safari with QDialog / all body-position-fixed scrollpreventer. No adressbar -> iOS 15 - "position fixed" on body -> blocked area on the bottom.
The blue zone problem can be observed in a simple page (scrollable) that has a fixed positioned element on it:
hide toolbar
viewport-fit=cover
you can scroll up and show the blue zoneviewport-fit=cover
you cannot scroll up and show the blue zoneWhen the address bar on bottom is hidden iOS behaves exactly the same as if it was not, so the page resizes exactly as if the bar would shrink/enlarge on scroll, except that it is transparent :)
It's not so simple, but it can be done almost perfectly: https://pdanpdan.github.io/quasar-docs/vue-components/dialog#basic
Problems:
Tested and the scroll fullheight dialog without the safari-sliding-bottom-and-top-bars-effect looks very nice. :-)
But for this issue... and to understand it right, the given Link and the solution is not the classic quasar "body-position-fixed" scrollprevent usage? The body position looks on the first view "un-fixed" ..
On the first tryouts it sometimes scrolls to top, but this is controllable or a unsolvable side-effect?
But for this issue... and to understand it right, the given Link and the solution is not the classic quasar "body-position-fixed" scrollprevent usage? The body position looks on the first view "un-fixed" ..
No, it's an experiment with using a static window and relative/overflow-hidden/size-and-position-specified body
On the first tryouts it sometimes scrolls to top, but this is controllable or a unsolvable side-effect?
I don't understand, but I think we should not pollute this issue - please open an issue or discussion in https://github.com/pdanpdan/quasar/issues
wohoo :-) programmatic setting a overflow-y auto on the html and a height 110vh* on body also made the trick on my QDialogPlus (my good-old non body-position:fixed solution) component. So iOS15 safari stops his footer and adress bars slide-in/out and i have a 100 % viewport height full sized dialog with extensive-scrolling possibilites. (and btw. also the pull-to-refresh is away .. :-))) )
Thank you very much for this way / tipp. I will inspect and test a little more (also the scroll-to-top-effect) and open the next days a issue on your git.
*110vh = to fill all (also notched) areas and get a complete display filled content. (scrolling starts >110vh)
Just wanted to leave my trace here for future me and others, This problem was caused because of height 100vh and position: fixed, I succeed solving it with changing it to position: sticky, and the div won't become transparent when scrolling down.
Interesting. Do you have a codepen with the solution?
not sure how to test in codepen, but here https://codepen.io/raiika/full/qBYzJgM
What happened?
The address bar of safari on iOS 15.2.1 can be in a minimized state which affect the display of the shadow background when a Dialog is opened: the background doesn't take all the height of the viewport:
As we can see, the background doesn't take 100vh, but instead let a space of the height of the adresse bar maximized:
What did you expect to happen?
The background must fit to take all the height of the viewport.
Reproduction URL
https://quasar.dev/quasar-plugins/dialog#example--basic
How to reproduce?
Flavour
Quasar CLI (@quasar/cli | @quasar/app)
Areas
Components (quasar)
Platforms/Browsers
Safari, iOS
Quasar info output
Relevant log output
No response
Additional context
No response