Saya memiliki pandangan dengan beberapa filter terbuka di blok; menggunakan AJAX dan fitur kirim otomatis sehingga tampilan dimuat ulang segera setelah opsi filter diubah.
Dalam jeda singkat antara memilih opsi dan tampilan yang dimuat ulang, pendorong AJAX biru yang sudah dikenal ditampilkan di suatu tempat di bagian bawah formulir (saya pikir di mana tombol kirim tersembunyi saat ini berada).
Saya tahu saya dapat menyesuaikan gambar ini dengan menimpa CSS untuk elemen throbber, tapi saya lebih suka tidak menggunakannya sama sekali.
Apa yang saya lebih suka lakukan adalah sementara memudar formulir filter terbuka (dan idealnya tampilan utama juga), menggunakan animasi jQuery. Mereka kemudian akan memudar kembali ketika panggilan AJAX selesai.
Jika gagal, saya ingin menggunakan metode yang sama dengan yang digunakan modul Views UI saat memperbarui, yaitu menempatkan ikon ini di tengah halaman:
Seperti yang sudah dibangun di saya hanya berasumsi akan ada pengaturan di suatu tempat untuk mengubah gaya / lokasi perilaku pemuatan ini; tidak beruntung sekalipun.
Bagaimana cara menerapkan salah satu dari metode ini?
Saya menggunakan Drupal 7 dengan Tampilan 7.x-3.3.
sumber
Jawaban:
Jika Anda tidak keberatan menggunakan jquery kecil, Anda selalu bisa melakukan sesuatu seperti:
sumber
ajaxSend
danajaxComplete
bisa digunakan dengan syaratif (settings.url == '/views/ajax') {//... }
untuk kontrol lebih.ajaxSuccess
hanya dipecat sekali; saya kira karena acara tidak secara otomatis terikat kembali ke yang diganti<div>
) tetapi selain itu ini sempurna, belum lagi indah sederhana . Terima kasih banyakDemi kelengkapan, inilah kode yang akhirnya saya gunakan; itu memudar baik bentuk filter terbuka dan tampilan keluar ketika beban AJAX dimulai, dan kembali lagi ketika selesai:
sumber
Halo saya telah membuat modul yang sangat sederhana yang memberikan dosis persis apa yang ingin Anda lakukan. Modul ini memiliki halaman konfigurasi tempat Anda dapat mengontrol gaya pemukul dan bahkan mengunggah gambar Anda sendiri tanpa peretasan.
Ini adalah tautan sandbox: http://drupal.org/sandbox/ANDiTKO/1556808
Jika Anda merasa berguna, mohon mengungkapkannya di sini sehingga dapat disetujui sebagai proyek resmi: http://drupal.org/node/1556114
sumber
Saya baru saja melakukan penelitian.
The
throbber
hardcoded di sini dalam constructor dariDrupal.views.ajaxView
.Contoh dari
Drupal.views.ajaxView
tidak disimpan diDrupal.ajax
dan ada@todo
tentang itu.Itu berarti bahwa kita tidak dapat masuk ke objek dan mengatur params kita sendiri.
Bagaimana cara kerja Views?
Jawaban singkatnya adalah CSS.
Tampilan halaman admin hanya menyembunyikan
throbber
dan menambahkan gaya ke orang tuanya.ajax-progress-throbber
.Bisakah saya melakukan sesuatu dengan Drupal.ajax?
Ya, saya menemukan beberapa metode yang dapat Anda timpa untuk elemen AJAX (tombol, tautan, dll). Saya telah menunjukkan contoh di sini: Bagaimana cara memperpanjang atau "mengaitkan" Drupal Form AJAX? . Tetapi dalam hal ini tidak akan begitu baik.
Elemen kemajuan ditampilkan di
beforeSend
panggung, sehingga Anda dapat melakukan sesuatu sebelum itu terjadi.sumber
.throbber
dan tambahkan beberapa gaya ke.ajax-progress-throbber
.ajax-progress-throbber
kapan AJAX dipanggil? Saya harus mengakui bahwa saya belum memerhatikan hal itu terjadi tetapi saya akan memeriksanya. Dan Anda rasa saya akan dapat menjalankan animasi jQuery dalam suatubeforeSend
fungsi (berdasarkan jawaban untuk pertanyaan Anda yang lain)? Terima kasih, saya tidak benar-benar menggunakan Views dan saya tidak dapat diganggu untuk menggali semua bagian kode untuk mengetahui apa yang terjadi! Saya akan memberi tahu Anda bagaimana saya bisa terus mencobanya.ajax-progress-throbber
kelas diterapkan pada mereka pada titik mana pun sehingga metode Anda tidak akan berfungsi. Terima kasih telah mencoba