Алтернативна опция за фонови изображения на начални екрани. (без хакове) Това не е просто или елегантно решение, но от друга страна, прогресивните уеб приложения също не са.
Можете просто да оставите вашия начален екран да се зареди, след което, когато URL адресът ви най-накрая се зареди, можете да използвате Javascript, за да задействате събитие, което стилизира вашия собствен персонализиран „мотивиран“ начален екран, преди останалата част от вашия документ да се зареди. Въпреки че това може да се почувства някак „хакерско“ за крайния потребител, то всъщност е просто заобиколно решение и не засяга по никакъв начин как работи манифестът. Ако тръгнете по този път, предлагам да използвате медийни заявки за тестване на display-mode
. По този начин вашият CSS ще разбере кога приложението ви е в определен режим и след това можете да стилизирате съответно.
Вашият CSS styles.css
:
/* the wrapper will be visible later after the document loads */
#wrapper { display:none; }
/*
Using a media query to test for the display-mode of your application
*/
@media all and (display-mode: fullscreen) {
body {
margin: 0;
border: 5px solid black;
}
}
#splash_screen {
/* all your splash screen styles */
}
Уверете се, че сте декларирали режима на показване във вашия манифест:
"дисплей": "самостоятелен"
Вашият HTML;
<html>
<head>
<link rel="stylesheet" type="text/css" href="/bgstyles.css">
<script type="text/javascript">
/* with setTimeout you have control over how long the
splash screen sticks because the document will load first. */
setTimeout( function() {
var wrapper= document.getElementById("wrapper") ;
var splash_screen = document.getElementById("splash_screen") ;
document.body.removeChild(splash_screen) ;
wrapper.style.display = "initial" ;
} , 2000 ) ;
</script>
</head>
<body>
<div id="splash_screen"></div>
<div id="wrapper">
/* the rest of your content */
</div>
</body>
</html>
MDN документация относно CSS display-mode . MDN документация за показване на манифест.
Опитвах се да намеря начин да използвам фонови изображения на начални екрани и така се озовах тук. В стремежа си стигнах до идеята за макет начален екран. Имайте предвид, че не съм тествал този код.
person
Xavier
schedule
10.09.2019