Questo problema è causato dalle barre degli URL che si restringono / scivolano di mezzo e cambiano la dimensione dei div # bg1 e # bg2 poiché sono al 100% di altezza e "fissi". Poiché l'immagine di sfondo è impostata su "copertina", regolerà la dimensione / posizione dell'immagine man mano che l'area di contenimento è più grande.
In base alla natura reattiva del sito, lo sfondo deve ridimensionare. Intrattengo due possibili soluzioni:
1) Impostare l'altezza # bg1, # bg2 su 100vh. In teoria, questa è una soluzione elegante. Tuttavia, iOS ha un bug vh ( http://thatemil.com/blog/2013/06/13/viewport-relative-unit-strangeness-in-ios-6/ ). Ho tentato di utilizzare un'altezza massima per evitare il problema, ma è rimasto.
2) La dimensione del viewport, quando determinata da Javascript, non è influenzata dalla barra degli URL. Pertanto, Javascript può essere utilizzato per impostare un'altezza statica su # bg1 e # bg2 in base alla dimensione della finestra. Questa non è la soluzione migliore in quanto non è puro CSS e c'è un leggero salto di immagine al caricamento della pagina. Tuttavia, è l'unica soluzione praticabile che vedo considerando i bug "vh" di iOS (che non sembrano essere stati corretti in iOS 7).
var bg = $("#bg1, #bg2");
function resizeBackground() {
bg.height($(window).height());
}
$(window).resize(resizeBackground);
resizeBackground();
In una nota a margine, ho visto così tanti problemi con queste barre URL di ridimensionamento in iOS e Android. Capisco lo scopo, ma hanno davvero bisogno di pensare attraverso la strana funzionalità e il caos che portano ai siti Web. L'ultima modifica, è che non è più possibile "nascondere" la barra degli URL al caricamento della pagina su iOS o Chrome utilizzando i trucchi di scorrimento.
EDIT: Mentre lo script sopra funziona perfettamente per impedire il ridimensionamento dello sfondo, provoca uno spazio evidente quando gli utenti scorrono verso il basso. Questo perché mantiene le dimensioni dello sfondo al 100% dell'altezza dello schermo meno la barra dell'URL. Se aggiungiamo 60 px all'altezza, come suggerisce Swiss, questo problema scompare. Ciò significa che non possiamo vedere i 60 pixel inferiori dell'immagine di sfondo quando è presente la barra degli URL, ma impedisce agli utenti di vedere mai un vuoto.
function resizeBackground() {
bg.height( $(window).height() + 60);
}