2013-05-22 22 views
11

Sto cercando di effettuare un animato gif nel corso di un jpg, e sembra funzionare nella maggior parte dei browser (IE, Firefox, iPhone, iPad), ma c'è una strana scatola intorno al animato gif in chrome on windows, firefox per il mac e chrome per il mac.scatola Odd in cromo

Ho finalmente risolto il problema con alcuni hack, come forzare l'immagine a ridimensionare al 99,9%, utilizzando una maschera per consentire solo una parte della gif animata da mostrare, ma c'è una soluzione cross browser migliore/più pulita ?

Fondamentalmente ho iniziato con un div e un'immagine all'interno, entrambi i quali sono reattivi.
HTML:

<div> 
    <img src="http://www.enjoyillinois.com/images/animations/Garden_of_Gods_anim_full.gif" /> 
</div> 

CSS:

div { 
    background-image: url("http://www.enjoyillinois.com/images/animations/Garden_of_Gods_bg.jpg"); 
    background-repeat: no-repeat; 
    background-size: cover; 
} 

img { 
    width:100%; 
    display:block; 
} 

Ecco un jsfiddle: http://jsfiddle.net/GyDCx/7/

+1

gif abbastanza bello che hai lì. E più 1 per una corretta domanda di costruzione – DextrousDave

+0

Ho notato in Win7 Chrome che va via quando ridimensionate la finestra. Non una soluzione, lo so, ma forse un vantaggio ... –

+0

Sì, va via se ridimensionate la finestra. Andrà anche via se si lega un'animazione ad esso che innesca qualsiasi tipo di ridimensionamento, cioè fino a quando non lo si scorre dallo schermo e si torna sullo schermo, quindi riappare di nuovo. –

risposta

7

E 'un problema di scala bordo dell'immagine, la soluzione che uso in questi casi è:

img{ image-rendering:-webkit-optimize-contrast; } 

che disabilita il bordo sfocata durante il ridimensionamento delle immagini. http://jsfiddle.net/GyDCx/31/

+0

+1 Questo sembra risolverlo. Trucco utile! –

+0

Sembra correggerlo per Chrome sul mio computer Windows. Dovrò ripeterlo quando tornerò in ufficio martedì per i Mac. Questo e 'esattamente quello che stavo cercando! –

+0

Questo risolve il problema su tutte le piattaforme che ho testato. Bella risposta! –

2

Si può provare:

-webkit-transform: translateZ(0px); 

Questo lo risolverà in Chrome.

vedere: http://jsfiddle.net/PvnmK/7/

PS1: testato anche su Safari e Firefox.

+0

Impossibile vedere il bordo anche se si ridimensiona su chrome 27.0.1453.93 o anche 17.0.963.66 per quella materia – JayMoretti

+0

si intende la parte in cui si disallinea? ecco di cosa si tratta. – JayMoretti

+0

Da @Jay Moretti Fiddle, se rendi il tuo 'div' come' inline-block; ', presumo che il problema non ci sia più. Ma sì, quando ti allunghi, le immagini non si ridimensionano in modo uniforme - @ user1846192 – Nitesh