Saya mencoba membuat efek di mana halaman dimuat, dan setelah 5 detik, pesan sukses di layar memudar, atau meluncur.
Bagaimana saya bisa mencapai ini?
Dibangun pada setTimeout javascript .
setTimeout(
function()
{
//do something special
}, 5000);
UPDATE : Anda ingin menunggu sejak saat halaman selesai memuat, jadi letakkan kode itu di dalam $(document).ready(...);
skrip Anda .
UPDATE 2 : jquery 1.4.0 memperkenalkan .delay
metode ini. Lihat itu . Perhatikan bahwa .delay hanya berfungsi dengan antrian efek jQuery.
setTimeout
.Gunakan penghitung javascript biasa:
Ini akan menunggu 5 detik setelah DOM siap. Jika Anda ingin menunggu sampai halaman tersebut sebenarnya
loaded
Anda perlu menggunakan ini:EDIT: Sebagai jawaban atas komentar OP yang menanyakan apakah ada cara untuk melakukannya di jQuery dan tidak menggunakan
setTimeout
jawabannya tidak. Tetapi jika Anda ingin membuatnya lebih "jQueryish" Anda bisa membungkusnya seperti ini:Anda dapat menyebutnya seperti ini:
sumber
Saya menemukan pertanyaan ini dan saya pikir saya akan memberikan pembaruan tentang topik ini. jQuery (v1.5 +) termasuk
Deferred
model, yang (meskipun tidak mematuhi spesifikasi Janji / A sampai jQuery 3) umumnya dianggap sebagai cara yang lebih jelas untuk mendekati banyak masalah asinkron. Menerapkan$.wait()
metode menggunakan pendekatan ini sangat mudah dibaca saya percaya:Dan inilah cara Anda dapat menggunakannya:
Namun jika, setelah jeda, Anda hanya ingin melakukan tindakan pada satu pilihan jQuery, maka Anda harus menggunakan asli jQuery
.delay()
yang saya percaya juga menggunakan Deferred's under the hood:sumber
Tempatkan kode Anda di dalam
{ }
dll.
sumber
Telah menggunakan yang ini untuk hamparan pesan yang dapat ditutup segera pada klik atau melakukan autoclose setelah 10 detik.
sumber
.delay()
dan bisa disarangkanThe Menggarisbawahi perpustakaan juga menyediakan "penundaan" fungsi:
sumber
Berdasarkan jawaban Joey, saya datang dengan solusi yang dimaksud (oleh jQuery, baca tentang 'antrian').
Ini agak mengikuti sintaks jQuery.animate () - memungkinkan untuk dirantai dengan fungsi fx lainnya, mendukung 'lambat' dan jQuery.fx.speed lainnya serta sepenuhnya jQuery. Dan akan ditangani dengan cara yang sama seperti animasi, jika Anda menghentikannya.
jsFiddle test ground dengan lebih banyak penggunaan (seperti memamerkan .stop ()), dapat ditemukan di sini .
inti dari solusinya adalah:
keseluruhan sebagai plugin, mendukung penggunaan $ .wait () dan $ (..). wait ():
Catatan: karena menunggu ditambahkan ke tumpukan animasi, $ .css () dieksekusi segera - seperti yang seharusnya: perilaku jQuery yang diharapkan.
sumber
sumber
Sadarilah bahwa ini adalah pertanyaan lama, tetapi saya menulis sebuah plugin untuk mengatasi masalah ini yang mungkin bermanfaat bagi seseorang.
https://github.com/madbook/jquery.wait
memungkinkan Anda melakukan ini:
sumber