Saya membutuhkan ini dan setelah beberapa penelitian saya datang dengan ini ( jQuery dibutuhkan):
Pertama, tepat setelah <body>
tag tambahkan ini:
<div id="loading">
<img id="loading-image" src="images/ajax-loader.gif" alt="Loading..." />
</div>
Kemudian tambahkan kelas gaya untuk div dan gambar ke CSS Anda:
#loading {
width: 100%;
height: 100%;
top: 0;
left: 0;
position: fixed;
display: block;
opacity: 0.7;
background-color: #fff;
z-index: 99;
text-align: center;
}
#loading-image {
position: absolute;
top: 100px;
left: 240px;
z-index: 100;
}
Kemudian, tambahkan javascript ini ke halaman Anda (lebih disukai di akhir halaman Anda, sebelum </body>
tag penutup Anda , tentu saja):
<script>
$(window).load(function() {
$('#loading').hide();
});
</script>
Terakhir, sesuaikan posisi gambar pemuatan dan background-colour
div pemuatan dengan kelas gaya.
Ini dia, harusnya bekerja dengan baik. Tapi tentu saja Anda harus punya ajax-loader.gif
tempat. Gratis di sini . (Klik kanan> Simpan Gambar Sebagai ...)
$('#loading').hide();
pada setiap memuat halaman.Script ini akan menambahkan div yang mencakup seluruh jendela saat halaman dimuat. Ini akan menampilkan pemintal pemuatan khusus CSS secara otomatis. Ini akan menunggu sampai jendela (bukan dokumen) selesai memuat, lalu akan menunggu beberapa detik tambahan opsional.
Kode pemuat CSS dari https://projects.lukehaas.me/css-loaders
sumber
$(window).on("load", handler)
menyala ketika semua objek DOM selesai memuat, termasuk gambar, skrip, bahkan iframe. Jika Anda ingin menunggu gambar tertentu dimuat, gunakan$('#imageId').on("load", handler)
$( "#loadingDiv" ).remove();
dengan$( "#loadingDiv" ).hide();
dan tambahkan$( "#loadingDiv" ).show();
sebelumnyasetTimeout(removeLoader, 2000);
. Saya memiliki div dihapus untuk membuat halaman lebih ringan, tetapi perbaikan ini membuatnya dapat digunakan kembali.Memuat halaman gambar dengan efek fadeout paling sederhana yang dibuat di JS:
sumber
Saya punya solusi sederhana di bawah ini untuk ini yang sangat cocok untuk saya.
Pertama-tama, buat CSS dengan nama kelas Lockon yang overlay transparan bersama dengan memuat GIF seperti yang ditunjukkan di bawah ini
Sekarang kita perlu membuat div kita dengan kelas ini yang mencakup seluruh halaman sebagai overlay setiap kali halaman dimuat
Sekarang kita perlu menyembunyikan layar sampul ini setiap kali halaman siap dan sehingga kita dapat membatasi pengguna dari mengklik / memecat peristiwa apa pun sampai halaman siap
Solusi di atas akan baik-baik saja setiap kali halaman memuat.
Sekarang pertanyaannya adalah setelah halaman dimuat, setiap kali kita mengklik tombol atau acara yang akan memakan waktu lama, kita perlu menunjukkan ini di acara klik klien seperti yang ditunjukkan di bawah ini
Itu berarti ketika kita mengklik tombol cetak ini (yang akan membutuhkan waktu lama untuk memberikan laporan) itu akan menampilkan layar sampul kita dengan GIF yang memberikan hasil dan setelah halaman siap di atas windows pada fungsi beban akan menyala dan yang menyembunyikan layar penutup setelah layar terisi penuh.
sumber
Default konten untuk
display:none
dan kemudian memiliki pengendali acara yang mengaturnyadisplay:block
atau serupa setelah itu dimuat penuh. Kemudian miliki div yang diaturdisplay:block
dengan "Memuat" di dalamnya, dan atur kedisplay:none
dalam pengendali event yang sama seperti sebelumnya.sumber
Yah, ini sangat tergantung pada bagaimana Anda memuat elemen yang diperlukan dalam 'panggilan intensif', pemikiran awal saya adalah bahwa Anda melakukan itu melalui ajax. Jika itu masalahnya, maka Anda bisa menggunakan opsi 'beforeSend' dan melakukan panggilan ajax seperti ini:
EDIT Saya melihat, dalam hal ini, menggunakan salah satu
'display:block'/'display:none'
opsi di atas dalam hubungannya dengan$(document).ready(...)
dari jQuery mungkin adalah cara untuk pergi. The$(document).ready()
menunggu fungsi untuk struktur dokumen seluruh dimuat sebelum mengeksekusi ( tetapi tidak menunggu semua media untuk beban ). Anda akan melakukan sesuatu seperti ini:sumber
beforeSend
dansuccess
untuk setiap panggilan ajax.Blog saya akan bekerja 100 persen.
sumber
Buat
<div>
elemen yang berisi pesan pemuatan Anda, berikan<div>
ID, dan kemudian ketika konten Anda selesai memuat, sembunyikan<div>
:... atau dalam JavaScript biasa:
sumber
$("#myElement").hide()
mudah di mata?Inilah jQuery yang akhirnya saya gunakan, yang memonitor semua start / stop ajax, jadi Anda tidak perlu menambahkannya ke setiap panggilan ajax:
CSS untuk wadah pemuatan & konten (kebanyakan dari jawaban mehyaa), serta
hide
kelas:HTML:
sumber
Berdasarkan jawaban @mehyaa, tetapi jauh lebih pendek:
HTML (tepat setelah
<body>
):CSS:
Javascript (jQuery, karena saya sudah menggunakannya):
sumber
hide()
elemen daripadaremove()
itu, sehingga Anda bisa menggunakannya kembali.Ini akan disinkronkan dengan panggilan api, Ketika panggilan api dipicu, loader ditampilkan. Ketika panggilan api berhasil, loader dihapus. Ini dapat digunakan untuk memuat halaman atau selama panggilan api.
CSS
sumber
untuk drupal di file theme_theme.theme tema Anda
Dalam file html.html.twig setelah melewati tautan konten utama di dalam tubuh
dalam file css
sumber