Saya mencoba untuk menambahkan baris ke tabel dan membuat slide baris ke tampilan, namun fungsi slidesown tampaknya akan menambahkan tampilan: gaya blok ke baris tabel yang mengacaukan tata letak.
Ada ide bagaimana mengatasi ini?
Ini kodenya:
$.get('/some_url',
{ 'val1': id },
function (data) {
var row = $('#detailed_edit_row');
row.hide();
row.html(data);
row.slideDown(1000);
}
);
fadeIn
danfadeOut
bekerja pada baris tabel dan membuat efek visual alternatif yang bagus (hanya diuji pada Firefox)Jawaban:
Animasi tidak didukung di baris tabel.
Dari "Learning jQuery" oleh Chaffer dan Swedberg
Anda dapat membungkus konten td Anda dalam div dan menggunakan slideDown itu. Anda perlu memutuskan apakah animasi tersebut layak dengan markup tambahan.
sumber
$('tr').find('td').animate({padding: '0px'}, {duration: 200});
Saya cukup membungkus tr secara dinamis kemudian menghapusnya setelah slideUp / slideDown telah selesai. Ini adalah overhead yang cukup kecil menambahkan dan menghapus satu atau beberapa tag dan kemudian menghapusnya setelah animasi selesai, saya tidak melihat kelambatan yang terlihat sama sekali melakukannya.
SlideUp :
Meluncur ke bawah:
Saya harus membayar upeti ke fletchzone.com ketika saya mengambil plugin-nya dan mengembalikannya ke atas, teman yang bersorak.
sumber
Berikut plug-in yang saya tulis untuk ini, dibutuhkan sedikit dari implementasi Fletch, tetapi milik saya hanya digunakan untuk menggeser baris ke atas atau ke bawah (tidak ada baris yang disisipkan).
Penggunaan Dasar:
Lewati opsi slide sebagai argumen individual:
Pada dasarnya, untuk animasi slide down, plug-in membungkus isi sel dalam DIVs, menghidupkannya, kemudian menghapusnya, dan sebaliknya untuk slide ke atas (dengan beberapa langkah tambahan untuk menyingkirkan sel pengisi). Ini juga mengembalikan objek yang Anda panggil, sehingga Anda dapat membuat metode seperti:
Semoga ini bisa membantu seseorang.
sumber
Anda dapat mencoba membungkus isi baris dalam
<span>
dan memiliki pemilih Anda menjadi$('#detailed_edit_row span');
- agak meretas, tapi saya baru saja mengujinya dan berfungsi. Saya juga mencobatable-row
saran di atas dan sepertinya tidak berhasil.pembaruan : Saya telah bermain-main dengan masalah ini, dan dari semua indikasi jQuery membutuhkan objek yang melakukan slideDown untuk menjadi elemen blok. Jadi, tidak ada dadu. Saya dapat menyulap sebuah tabel di mana saya menggunakan slideDown pada sel dan itu tidak mempengaruhi tata letak sama sekali, jadi saya tidak yakin bagaimana pengaturan Anda. Saya pikir satu-satunya solusi Anda adalah untuk memperbaiki tabel sedemikian rupa sehingga tidak masalah dengan sel yang menjadi blok, atau hanya
.show();
masalah sialan. Semoga berhasil.sumber
<td><div style="display:block">contents</div></td>
Pilih konten baris seperti ini:
.contents () - Dapatkan anak-anak dari setiap elemen dalam set elemen yang cocok, termasuk teks dan node komentar.
sumber
$('tr > td').contents().slideDown()
. Pastikan semua konten di dalam kolom dibungkus dengan tag, artinya<td>Some text</td>
tidak akan berfungsi. Ini adalah solusi paling sederhana.Saya agak ketinggalan zaman dalam menjawab ini, tetapi saya menemukan cara untuk melakukannya :)
Saya baru saja memasukkan elemen div di dalam tag data tabel. ketika diatur terlihat, saat div mengembang, seluruh baris turun. kemudian katakan untuk memudar kembali (kemudian batas waktu sehingga Anda melihat efeknya) sebelum menyembunyikan baris tabel lagi :)
Semoga ini bisa membantu seseorang!
sumber
Saya menemukan tabel dengan baris tersembunyi yang meluncur masuk dan keluar dari pandangan pada klik baris.
Tampilkan cuplikan kode
sumber
Memiliki baris tabel dengan tabel bersarang:
Untuk slideDown baris:
Catatan: baris dan kontennya (ini dia
"table"
) keduanya harus disembunyikan sebelum animasi dimulai.Untuk menggeser ke atas:
Parameter kedua (
function()
) adalah panggilan balik.Sederhana!!
Perhatikan bahwa ada juga beberapa opsi yang dapat ditambahkan sebagai parameter fungsi geser atas / bawah (yang paling umum adalah durasi
'slow'
dan'fast'
).sumber
Saya telah menyelesaikan ini dengan menggunakan elemen td di baris:
Animasi baris itu sendiri menyebabkan perilaku aneh, sebagian besar masalah animasi async.
Untuk kode di atas, saya menyoroti baris yang diseret dan dijatuhkan di tabel untuk menyorot bahwa pembaruan telah berhasil. Semoga ini bisa membantu seseorang.
sumber
effect is not a function
Saya memang menggunakan ide-ide yang disediakan di sini dan menghadapi beberapa masalah. Saya memperbaiki mereka semua dan memiliki satu liner halus yang ingin saya bagikan.
Ia menggunakan css pada elemen td. Ini mengurangi ketinggian hingga 0px. Dengan begitu hanya tinggi konten div-wrapper yang baru dibuat di dalam setiap elemen.
SlideUp lambat. Jika Anda membuatnya lebih lambat, Anda mungkin menyadari ada kesalahan. Lompatan kecil di awal. Ini karena pengaturan css yang disebutkan. Tetapi tanpa pengaturan itu, tinggi baris tidak akan berkurang. Hanya isinya yang mau.
Pada akhirnya elemen tr dihapus.
Seluruh baris hanya berisi JQuery dan tidak ada Javascript asli.
Semoga ini bisa membantu.
Berikut ini contoh kode:
sumber
Saya ingin menggeser seluruh tubuh dan saya telah mengatasi masalah ini dengan menggabungkan efek fade dan slide.
Saya telah melakukan ini dalam 3 tahap (langkah 2 dan 3 diganti jika Anda ingin meluncur ke bawah atau ke atas)
Contoh slideUp:
sumber
Saya punya masalah dengan semua solusi lain yang ditawarkan tetapi akhirnya melakukan hal sederhana ini yang sehalus mentega.
Siapkan HTML Anda seperti itu:
Kemudian atur javascript Anda seperti ini:
Pada dasarnya, buat baris "tak terlihat" 0px tinggi, dengan div di dalamnya.
Gunakan animasi pada div (bukan baris) dan kemudian atur tinggi baris menjadi 1px.
Untuk menyembunyikan baris lagi, gunakan animasi yang berlawanan pada div dan atur tinggi baris kembali ke 0px.
sumber
Saya menyukai plugin yang ditulis dan digunakan oleh Vinny. Tetapi dalam kasus tabel di dalam baris geser (tr / td), baris tabel bersarang selalu disembunyikan bahkan setelah meluncur. Jadi saya melakukan hack cepat dan sederhana di plugin untuk tidak menyembunyikan deretan tabel bersarang. Ubah saja baris berikut
untuk
yang hanya menemukan langsung bukan yang bersarang. Semoga ini bisa membantu seseorang menggunakan plugin dan memiliki tabel bersarang.
sumber
Saya ingin menambahkan komentar ke posting # Vinny tetapi tidak memiliki perwakilan jadi harus mengirim jawaban ...
Menemukan bug dengan plugin Anda - ketika Anda baru saja melewati sebuah objek dengan argumen mereka akan ditimpa jika tidak ada argumen lain yang dilewatkan. Mudah diselesaikan dengan mengubah urutan argumen diproses, kode di bawah ini. Saya juga menambahkan opsi untuk menghancurkan baris setelah ditutup (hanya karena saya membutuhkannya!): $ ('# Row_id'). SlideRow ('up', true); // hancurkan barisan
sumber
Jika Anda perlu menggeser dan memudar baris tabel pada saat yang bersamaan, coba gunakan ini:
sumber
Anda dapat menggunakan metode ini seperti:
sumber
Saya bisa melakukannya jika Anda mengatur td di baris untuk menampilkan tidak ada pada saat yang sama Anda mulai menjiwai ketinggian di baris
sumber
Kode ini berfungsi!
sumber
http://jsfiddle.net/PvwfK/136/
});
sumber
Steker yang ditawarkan oleh Vinny benar - benar dekat, tetapi saya menemukan dan memperbaiki beberapa masalah kecil.
Untuk sel tabel dengan banyak konten (seperti tabel bersarang dengan banyak baris), memanggil slideRow ('atas'), terlepas dari nilai slideSpeed yang disediakan, itu akan menutup tampilan baris segera setelah animasi padding dilakukan . Saya memperbaikinya sehingga animasi padding tidak memicu sampai metode slideUp () pada pembungkus selesai.
sumber
Perbaikan Cepat / Mudah:
Gunakan JQuery .toggle () untuk menampilkan / menyembunyikan baris onclick dari salah satu Row atau Anchor.
Fungsi harus ditulis untuk mengidentifikasi baris yang ingin Anda sembunyikan, tetapi beralih membuat fungsi yang Anda cari.
sumber