Na mojej stronie mam kilka (około 30) węzłów dom, które należy dodać jako niewidoczne i znikać, gdy zostaną w pełni załadowane.
Elementy wymagają wyświetlania: styl inline-block.
Chciałbym użyć funkcji jquery .fadeIn (). Wymaga to, aby element początkowo miał display: none; zasadę, aby początkowo ją ukryć. Po fadeIn () elementy z kursu mają domyślny wygląd: inherit;
Jak mogę używać funkcji zanikania z wartością wyświetlania inną niż dziedziczenie?
$("div").fadeIn().css("display","inline-block");
źródło
$("div").fadeIn().css("display","");
$("div").fadeIn("400", function(){ $(this).css("display","inline-block"); });
aby mieć pewność, że display: inline-block jest zakończony po zakończeniu fadeinAby rozwinąć dobry pomysł Phila, oto fadeIn (), która ładuje zaniki w każdym elemencie z klasą .faded po kolei, konwertowane na animate ():
Stary:
Nowy:
Mam nadzieję, że pomoże to innemu nowicjuszowi jQuery, jak ja :) Jeśli istnieje lepszy sposób, aby to zrobić, powiedz nam!
źródło
Odpowiedź Makury nie zadziałała dla mnie, więc moje rozwiązanie było takie
hide
ma zastosowanie natychmiast,display: none
ale wcześniej zapisuje bieżącą wartość wyświetlaną w pamięci podręcznej danych jQuery, która zostanie przywrócona przez kolejne wywołania animacji.Więc
div
starty zdefiniowane statycznie jakodisplay: none
. Następnie jest ustawiany nainline-block
i natychmiast ukrywany, aby ponownie pojawił sięinline-block
źródło
Zgodnie z dokumentacją jQuery dla
.show()
:Więc moim rozwiązaniem tego problemu było zastosowanie reguły css do wyświetlania klas: inline-block na elemencie, a następnie dodałem kolejną klasę o nazwie "hide", która stosuje display: none; Kiedy byłem
.show()
na elemencie, pokazał się w linii.źródło
#el{display:inline-block;display:none;}
a następnie uruchamiasz$('#el').fadeIn();
otrzymujesz blok inline. Ale tak nie jest.Działa to nawet z
display:none
presetem przez css. Posługiwać się(a także
$('#element').fadeOut().removeClass('displaytype');
)z konfiguracją w CSS:
Uważam to za obejście, ponieważ uważam, że
fadeIn()
powinno działać, aby po prostu usunąć ostatnią regułę -display:none
gdy jest ustawiona na,#element{display:inline-block;display:none;}
ale nieprawidłowo usuwa obie.źródło