2013-01-17 12 views
29

Ho riscontrato un bug strano quando utilizzo una combinazione di overflow, border-radius e transition. Ho un div con un img al suo interno. Il div ha un raggio di confine e un overflow impostato su nascosto. Quando passo il mouse sopra l'img, ho una transizione che rende l'immagine più grande per creare un effetto zoom. Il problema è che l'overflow sembra rompersi in basso a sinistra e in basso a destra dell'immagine.Bug di confine e overflow di Webkit quando si utilizza qualsiasi animazione/transizione

Ho creato un jsfiddle per farvi vedere di cosa sto parlando. http://jsfiddle.net/dmcgrew/HuMrC/1/

Funziona bene in Firefox ma si interrompe in Chrome e Safari.

Qualcuno sa che cosa potrebbe causare questo o come risolverlo?

+0

Grazie per la tua domanda, stava per pubblicare il mio :) Grazie! –

+1

Si prega di guardare a questo: http://stackoverflow.com/questions/20001515/chrome-bug-border-radius-not-clipping-contents-when-combined-with-css-transiti Questa è la risposta definitiva e la migliore soluzione! –

+1

Bug relativo a Chromium: [# 157218] (https://code.google.com/p/chromium/issues/detail?id=157218). –

risposta

2

Non so se sto capendo correttamente il problema poiché l'immagine non si sta caricando. Se aggiungi height: 100%; a .inner_block, può esserti d'aiuto?

http://jsfiddle.net/HuMrC/2/

+2

Sì, sembra aggiustarlo. Sono stato anche in grado di aggiustarlo aggiungendo un bordo con colore trasparente al div .block. – Dustin

1

La risposta accettata non ha funzionato per me, perché io non posso avere il confine chiaro aumentando l'area cliccabile dell'elemento mascherato, né voglio a oscurare quella di altri elementi (e l'impostazione l'altezza al 100% non ha risolto il problema).

Vedere my answer to a related question per una possibile soluzione.

59

Ho avuto lo stesso esatto problema. Aggiungendo questo al contenitore padre lo ha risolto per me (questo è un mix MINORE).

.transitionfix() { 
    -webkit-backface-visibility: hidden; 
    -moz-backface-visibility: hidden; 
    -webkit-transform: translate3d(0, 0, 0); 
    -moz-transform: translate3d(0, 0, 0) 
} 
+0

Grazie per la tua risposta, stava per pubblicare la mia stessa domanda :) Grazie! –

+1

Ancora pause in Safari, se provi il mio jsFiddle in Safari http://jsfiddle.net/d4h2t0Lt/ – woutvdd

+0

Grazie! Questo ha funzionato per me sia su Chrome che su Safari per Mac (v7.1.2). Se rimuovi/* FIX */linee dal file CSS e quindi filtra l'elenco digitando "ja", vedrai (sul webkit) che l'avatar di Jay-z ignorerà l'overflow e il raggio del bordo durante l'animazione. Vedi il mio plunker qui http://plnkr.co/ayRgf52URQQ5XLqQtZVJ – tbutcaru

3

ho aggiunto meno il valore z-index per l'immagine e il valore più alto per il genitore

li {z-index:10; overflow: hidden;} 

li img {z-index: -10;} 
Problemi correlati