Di halaman saya, saya memiliki banyak (sekitar 30) node dom yang harus ditambahkan tidak terlihat, dan memudar ketika sudah penuh.
Elemen membutuhkan tampilan: gaya blok sebaris.
Saya ingin menggunakan fungsi jquery .fadeIn (). Ini mengharuskan elemen awalnya memiliki display: none; aturan untuk awalnya menyembunyikannya. Setelah fadeIn () elemen tentunya memiliki tampilan default: inherit;
Bagaimana cara menggunakan fungsionalitas fade dengan nilai tampilan selain inherit?
$("div").fadeIn().css("display","inline-block");
sumber
$("div").fadeIn().css("display","");
$("div").fadeIn("400", function(){ $(this).css("display","inline-block"); });
untuk memastikan bahwa tampilan: blok-sebaris selesai saat fadein selesaiHanya untuk menyempurnakan ide bagus Phil, berikut adalah fadeIn () yang memuat fades di setiap elemen dengan kelas .faded pada gilirannya, dikonversi menjadi animate ():
Tua:
Baru:
Semoga dapat membantu newb jQuery lain seperti saya :) Jika ada cara yang lebih baik untuk melakukannya, beri tahu kami!
sumber
Jawaban Makura tidak berhasil untuk saya, jadi solusi saya adalah
hide
segera berlakudisplay: none
tetapi sebelum itu menyimpan nilai tampilan saat ini di cache data jQuery yang akan dipulihkan oleh panggilan animasi berikutnya.Jadi
div
awal secara statis didefinisikan sebagaidisplay: none
. Kemudian itu diatur keinline-block
dan segera disembunyikan hanya untuk memudar kembali keinline-block
sumber
Menurut dokumen jQuery untuk
.show()
,Jadi solusi saya untuk masalah ini adalah dengan menerapkan aturan css ke kelas display: inline-block pada elemen tersebut, lalu saya menambahkan kelas lain yang disebut "hide" yang menerapkan display: none; Ketika saya
.show()
di elemen, itu menunjukkan sebaris.sumber
#el{display:inline-block;display:none;}
dan kemudian menjalankan$('#el').fadeIn();
Anda mendapatkan blok-inline. Tapi ternyata tidak.Ini bekerja bahkan dengan
display:none
preset oleh css. Menggunakan(dan juga
$('#element').fadeOut().removeClass('displaytype');
)dengan penyiapan di CSS:
Saya menganggap ini solusi karena saya yakin
fadeIn()
harus berfungsi sehingga itu hanya akan menghapus aturan terakhir -display:none
ketika diatur ke#element{display:inline-block;display:none;}
tetapi tidak berfungsi menghapus keduanya.sumber