Closed olivermuc closed 5 years ago
Has anyone else tried to implement full screen image backgrounds? Are there other options, I haven't covered?
Has anyone else tried to implement full screen image backgrounds? Are there other options, I haven't covered?
Hi there,
I was struggling with the same problem. I fixed it temporarily by using your 'NB2' solution and then giving absolute position to the header
ion-header { position: absolute; }
and then setting the --padding-top css variable on the ion-content.
Also i'm using @ionic/angular: 4.0.0-rc.0
Hi, there is a problem with the ion-refresher and the NB2 solution, I can not see the refresher, but If I set "z-index: 1" to ion-refresher, the ion-refresher will look like on picture below
Do you have any ideas how to fix that?
I found solution, just change background url to base64 instead of simple url, and image stops flashing
I found solution, just change background url to base64 instead of simple url, and image stops flashing
Base64 vs external image file has been discussed for years. While it may work better than with external files - in your use-case - it's generally not good solution for a number of reasons, but especially when it comes to larger fullscreen background images.
Has anyone else tried to implement full screen image backgrounds? Are there other options, I haven't covered?
Hi there, I was struggling with the same problem. I fixed it temporarily by using your 'NB2' solution and then giving absolute position to the header
ion-header { position: absolute; }
and then setting the --padding-top css variable on the ion-content.Also i'm using
@ionic/angular: 4.0.0-rc.0
This is partially the solution (at least allowing for a full screen image to be shown):
ion-header { position: absolute; }
However, using --padding-top
doesn't work unless you intend to show the scrolling content behind the transparent header.
The ideal solution would be to pass on the background-image url to the ion-content web component, NOT using a css variable, which creates performance (slow) and visual issues (flickers on iOS).
Unfortunately it is still broken and even worse with v4.1.0.
Hi there,
I appreciate everyone's patience with this issue. We are actively looking into this issue, and will update you when we have more information.
Thanks!
Thanks @liamdebeasi for the heads up, that's great news. Happy to support the solution finding process / testing, given my exposure in that particular area.
Hi @olivermuc,
I am noticing the background image flickering (known issue in WebKit, more here: https://github.com/ionic-team/ionic/issues/17494), but other than that, the background image appears to be animating as it should.
I am testing on the full-screen-background-on-ion-content
branch. Which device/browser are you seeing this on?
Thanks!
@liamdebeasi I noticed the above reported issues on iOS (across devices, latest version).
Your workaround (to bypass the known webkit bug) is a nice one, and I can easily imagine that to be my choice of implementation, until Safari is fixed.
The benefit of doing it inside the controller is that one can still utilize the out of the box header/body padding logic and it doesn't require manipulating the--offset*
variables to achieve a fullscreen display when applied directly to ion-content
(previous workaround).
Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Ionic, please create a new issue and ensure the template is fully filled out.
Bug Report
Ionic version: [x] 4.0.x
Current behavior: During the animation of page transitions, the full screen background is not animated, instead painted at once.
Expected behavior: I would expect to find a way to have a full screen background animate during page transition.
Steps to reproduce: See below sample code.
Related code: Sample app provided: https://github.com/olivermuc/pages-with-background-images
PageOne SCSS sample code (see also further info below):
Other information: The above SCSS code was the last resort after having tried a myriad of ways to implement a full screen background without having to use
<ion-content fullscreen>
.NB1 Btw I did try
<ion-content fullscreen>
and the results weren't satisfying mostly bc of performance issues introduced by the use of CSS variables for dynamically changing the --background. This was the SCSS code I used for that:The result even worse:
NB2: Animation is significantly better if I were to not use the background CSS var and instead provided a hardcoded
background: ...
command:Result:
HOWEVER, as you can see, due to CSS scope I can only apply my custom background to the parent
<ion-content>
which doesn't stretch across the entire page...a catch 22 situation.Ionic info: