2011-07-16 11 views

Odpowiedz

14

z kombinacji co czytam powyżej, jest to najlepszy mam:

$(div).css({ 
     opacity: 0, 
     display: 'inline-block'  
    }).animate({opacity:1},600); 
+0

Zapisujesz mój dzień –

+0

Po prostu wspaniały człowiek .. Dzięki – Novasol

17

Jeśli używasz css()?

$("div").fadeIn().css("display","inline-block"); 
+4

nie próbowałem tego, ale mam wrażenie, może to spowodować, że element, aby przejść się trochę, jak zostanie zmienione na 'display: block;' podczas animacji, a następnie z powrotem do 'display: inline-block' po zakończeniu animacji. Więc nie sądzę, że to zadziała. Może warto się wypróbować, więc i tak +1. – Spudley

+0

@Spudley Myślałem, że jest również i wypróbowałem to z 'position: inline' zamiast' position: inline-block', aby zobaczyć, czy pokaże to najpierw jako 'display: block', ale tak się nie stało. http://jsfiddle.net/6DcY9/ Oczywiście w zależności od innego kodu może się to zdarzyć – Sotiris

+0

Robię 'fadeIn (" fast "). css ({'display': 'inline-block'})' i nie powoduje to, że mój układ w ogóle się skacze. Myślę, że ustawia właściwość wyświetlania przed zakończeniem fadeIn. Dodatkowo, ponieważ IE7 nie wie, jak interpretować blok inline, sprawdzam, czy 'html' ma klasę' ie7', a następnie ustawia '.css ({'display': 'inline', 'zoom': ' 1 '}) 'zamiast tego. – Jazzerus

6

sugeruję umieszczenie dodatkowej warstwy elementów wewnątrz elementu inline-block i blaknięcie, że w zamian.

<div style='display:inline-block;'> 
    <div id='fadmein'>....</div> 
</div> 

$('#fademein').fadeIn(); 

Wiem, że to dodatkowy znacznik, ale jest to chyba najbardziej pragmatyczne rozwiązanie problemu.

Alternatywą byłoby użycie metody JQuery's animate() w celu zmiany krycia zamiast używania fadeIn(). Zmieniłoby to tylko właściwość opacity; więc własność display pozostanie nietknięta.

+0

W zależności od tego, jak skonfigurowałeś zawartość, może to być nie jest najlepiej wyglądającym rozwiązaniem, ale jest to prawdopodobnie najłatwiejsze do wdrożenia i działa zaskakująco dobrze. Dziękuję bardzo! – shmeeps

1

Zgodnie z this question na forach jQuery, sugerowane rozwiązanie polega na zmianie właściwości jego wyświetlania na block i przeniesieniu go.

+5

gosh nr. jeśli używasz 'inline-block', to dlatego, że próbujesz uniknąć floatingu. – Spudley

+0

Zgadzam się. Ale myślę, że jest to odpowiedni link do zapewnienia – Simeon

Powiązane problemy