2012-04-05 11 views

risposta

2

Basta salvare l'immagine PNG con interlaced opzione

+0

Ho provato "interlacciato" e non risolve il problema, almeno in Safari 6.0.2. – Ben

0

Ho avuto lo stesso problema di cui sopra (solo in Safari). Il mio tag body ha un'immagine di sfondo, è repeat-x e viene usato come sfondo per l'intero sito web. Quando un utente accede alla pagina in Safari, c'è un lampo di nero sul caricamento della pagina. Ho cercato per anni una soluzione a questo, ma sembra essere un bug irrisolto con Safari.

Ho provato ad aggiungere "style: background-color: #FFF" ai tag html e body e ho anche provato a usare la vecchia scuola "bgcolor: #FFF" - nessuno funziona.

L'unico modo per far funzionare Safari era usare CSS + jQuery. Dai al corpo una classe di "bg-on" nei tuoi file html e CSS. In un file .js collegato o nella della pagina HTML nei tag:

jQuery(function ($) { 
$(document).ready(function(){ 

$('body').removeClass('bg-on'); 

});//end document ready 

/* NOTE (window).load fires when images have been fully loaded */ 
$(window).load(function() { 

$('body').addClass('bg-on'); 

});//end window load function 
});//end jQuery function no conflict mode 

Quello che il precedente non è quando il DOM è caricato dal browser, che rimuove la classe dal corpo, quindi, Safari non lo farà mostra uno sfondo nero poiché non c'è immagine di sfondo. Quindi quando scatta l'evento window.load, quando tutte le risorse sono state caricate, al corpo viene assegnata l'immagine di sfondo ...

Non ha alcun effetto sui browser disabilitati JS, poiché la classe di "bg-on" è hardcoded nell'html.

Non è una soluzione particolarmente elegante, ma funziona per me.

1

Ho avuto lo stesso problema in Safari 6. La mia immagine era nello spazio di colore in scala di grigi. L'ho cambiato in rgb e il problema è scomparso. Prova a controllare le impostazioni dello spazio colore delle immagini!

0

Ho avuto questo problema di recente in Safari 6.0.2, che si presentava anche in Safari mobile (almeno in iOS 6). Il salvataggio dello sfondo come interlacciato non ha funzionato su tutta la linea & lo spazio colore era RGB. Per fortuna il mio background aveva pochissimi colori & convertirlo in GIF risolto il problema completamente.

1

Ciò accade perché il PNG non ha un canale alfa. Photoshop salva l'immagine con il canale alfa solo se l'immagine ha pixel trasparenti. Per funzionare correttamente in Safari, il pezzo IHDR dell'immagine PNG deve avere "truecolor-apha" nel suo contenuto. Puoi vedere i png pezzi in tweakpng (http://entropymine.com/jason/tweakpng/) o programmi simili.

Problemi correlati