Saya ingin meluncurkan Fancybox (misalnya modal atau kotak lampu versi Fancybox ) saat halaman dimuat. Saya bisa mengikatnya ke tag jangkar tersembunyi dan mengaktifkan peristiwa klik dari tag jangkar itu melalui JavaScript, tetapi saya lebih suka meluncurkan Fancybox secara langsung dan menghindari tag jangkar tambahan.
jquery
jquery-plugins
fancybox
Blegger
sumber
sumber
Jawaban:
Fancybox saat ini tidak secara langsung mendukung cara peluncuran otomatis. Pekerjaan yang bisa saya lakukan adalah membuat tag jangkar tersembunyi dan memicu peristiwa kliknya. Pastikan panggilan Anda untuk memicu peristiwa klik disertakan setelah file jQuery dan Fancybox JS disertakan. Kode yang saya gunakan adalah sebagai berikut:
Contoh skrip ini disematkan langsung di HTML, tetapi bisa juga disertakan dalam file JS.
sumber
$(document).ready(LaunchFancyBox());
seharusnya$(document).ready(LaunchFancyBox);
. (perhatikan kurangnya panggilan fungsi di akhir).Saya mendapatkan ini untuk bekerja dengan memanggil fungsi ini dalam dokumen siap:
sumber
Itu mudah:
Jadikan elemen Anda tersembunyi terlebih dahulu seperti ini:
Kemudian panggil javascript Anda:
Lihat gambar di bawah ini:
Contoh lain:
sumber
Window.load (sebagai lawan document.ready ()) tampaknya merupakan trik yang digunakan dalam demo onload JSFiddler dari Fancybox 2.0 :
Ingatlah bahwa Anda mungkin menggunakan document.ready () di tempat lain, dan IE9 akan kecewa dengan urutan pemuatan keduanya. Ini memberi Anda dua opsi: ubah semuanya ke window.load atau gunakan setTimer ().
sumber
Atau gunakan ini di file JS setelah fancybox Anda diatur:
Saya percaya Fancybox 1.2.1 akan menggunakan opsi default jika tidak dari pengujian saya ketika saya perlu melakukan ini.
sumber
mengapa ini belum menjadi salah satu jawabannya ?:
sekarang picu saja tautan Anda !!
mendapatkan ini dari beranda Fancybox
sumber
Cara terbaik yang saya temukan adalah:
sumber
Untuk kasus saya, berikut ini dapat berhasil. Saat halaman dimuat, lightbox segera muncul.
JQuery: 1.4.2
Fancybox: 1.3.1
sumber
Jawaban Alex bagus. tetapi penting untuk dicatat bahwa itu memanggil gaya fancybox default. Jika Anda memiliki aturan khusus sendiri, Anda harus memanggil .trigger click pada jangkar khusus itu
sumber
Saya benar-benar berhasil memicu tautan fancyBox hanya dari file JS eksternal menggunakan acara "langsung":
Pertama, tambahkan acara klik langsung pada jangkar dinamis masa depan Anda:
Kemudian, tambahkan jangkar ke badan:
Kemudian picu fancyBox dengan "mengklik" jangkar:
Tautan fancyBox sekarang "hampir" siap. Mengapa "hampir"? Karena sepertinya Anda perlu menambahkan penundaan sebelum memicu klik kedua, jika tidak, skrip belum siap.
Ini adalah penundaan yang cepat dan kotor menggunakan beberapa animasi pada jangkar kami, tetapi berfungsi dengan baik:
Ini dia, fancyBox Anda akan muncul saat dimuat!
HTH
sumber
Mungkin ini akan membantu ... ini digunakan dalam acara klik kalender jQuery ukuran penuh ( http://arshaw.com/fullcalendar/ ) ... tetapi dapat digunakan secara lebih umum untuk menangani fancybox yang diluncurkan oleh jQuery.
sumber
Anda juga dapat menggunakan fungsi JavaScript asli
setTimeout()
untuk menunda tampilan kotak setelah DOM siap.sumber
Jika Anda tidak memiliki tombol untuk mengklik. Maksud saya jika ingin membukanya di respon ajax maka akan seperti ini:
sumber
Ini akan membantu..
sumber
Anda dapat meletakkan link seperti ini (ini akan disembunyikan. Mungkin sebelum
</body>
)Dan mengerjakan atribut rel atau kelas seperti ini
Lakukan saja dengan fungsi pemicu jquery
sumber
HTML:
JS:
sumber
mungkin Anda bisa menggunakan jqmodal , ringan dan mudah digunakan. Anda dapat menampilkan kotak modal dengan menelepon
sumber