Saya baru mengenal jQuery dan memiliki pengalaman menggunakan Prototype. Dalam Prototipe, ada metode untuk "flash" elemen - yaitu. sorot sebentar dalam warna lain dan minta agar kembali normal sehingga mata pengguna tertarik padanya. Apakah ada metode seperti itu di jQuery? Saya melihat fadeIn, fadeOut, dan animate, tapi saya tidak melihat apa pun seperti "flash". Mungkin salah satu dari ketiganya dapat digunakan dengan input yang sesuai?
249
$.fn.flash = function(times, duration) { var T = this; times = times || 3; duration = duration || 200; for ( var i=0; i < times; i++ ) { (function() { setTimeout(function() { T.fadeOut(duration, function() { T.fadeIn(duration); }); }, i*duration*2+50); })(i); } };
text-decoration:blink
lalu hapus.Jawaban:
Cara saya adalah .fadein, .fadeout .fadein, .fadeout ......
Tampilkan cuplikan kode
sumber
$('..').delay(100).fadeOut().fadeIn('slow')
var $someElement = $("#someElement"); $someElement.fadeIn(100, function(){ $someElement.fadeOut(100, function(){ /*...etc...*/ }) })
Anda dapat menggunakan plugin jQuery Color .
Misalnya, untuk menarik perhatian semua div di halaman Anda, Anda bisa menggunakan kode berikut:
Edit - Baru dan ditingkatkan
Berikut ini menggunakan teknik yang sama seperti di atas, tetapi memiliki manfaat tambahan:
Perpanjang Objek jQuery:
Contoh penggunaan:
sumber
Note: The jQuery UI project extends the .animate() method by allowing some non-numeric styles such as colors to be animated.
- Jika Anda ingin menghidupkan warna, Anda MEMBUTUHKAN jQuery UI atau plugin lain.Anda dapat menggunakan animasi CSS3 untuk mem-flash sebuah elemen
Dan Anda jQuery untuk menambahkan kelas
sumber
@keyframes
dananimation
aturan, sehingga tidak perlu untuk menggunakan versi diawali selain mungkin-webkit-
(untuk browser Blackberry).Setelah 5 tahun ... (Dan tidak diperlukan plugin tambahan)
Ini "pulsa" ke warna yang Anda inginkan (misalnya putih) dengan meletakkan warna latar belakang div di belakangnya , dan kemudian memudar objek keluar dan masuk lagi.
Objek HTML (mis. Tombol):
jQuery (vanilla, tidak ada plugin lain):
elemen - nama kelas
angka pertama dalam
fadeTo()
milidetik untuk transisiangka kedua dalam
fadeTo()
opacity objek setelah fade / unfadeAnda dapat memeriksanya di sudut kanan bawah halaman web ini: https://single.majlovesreg.one/v1/
Edit (willsteel) tidak ada pemilih duplikat dengan menggunakan $ (ini) dan nilai tweak untuk secara akut melakukan flash (seperti yang diminta OP).
sumber
fadeTo(0000)
- Metallica$.fn.flashUnlimited=function(){$(this).fadeTo('medium',0.3,function(){$(this).fadeTo('medium',1.0,$(this).flashUnlimited);});}
Anda kemudian dapat menyebutnya seperti$('#mydiv').flashUnlimited();
- Ini melakukan apa yang dijawab Majal di atas, dan menyebut dirinya kembali di akhir siklus.Anda bisa menggunakan efek highlight di jQuery UI untuk mencapai hal yang sama, saya kira.
sumber
Jika Anda menggunakan jQueryUI, ada
pulsate
fungsi diUI/Effects
http://docs.jquery.com/UI/Effects/Pulsate
sumber
pulsate
berfungsi dengan baik di Chrome.sumber
fadeIn
danfadeOut
memengaruhi elemen saudara lain karena mengubahdisplay
properti css , terlihat aneh dalam kasus saya. Tapi yang ini memperbaiki masalahnya. Terima kasih, ini bekerja dengan elegan seperti pesona.Anda bisa menggunakan plugin ini (memasukkannya ke file js dan menggunakannya melalui tag-tag)
http://plugins.jquery.com/project/color
Dan kemudian gunakan sesuatu seperti ini:
Ini menambahkan metode 'flash' ke semua objek jQuery:
sumber
Anda dapat memperluas metode Desheng Li lebih lanjut dengan memungkinkan iterasi dihitung untuk melakukan banyak flash seperti:
Kemudian Anda dapat memanggil metode dengan waktu dan jumlah flash:
sumber
var iterationDuration = Math.floor(duration / iterations);
sehingga Anda bisa membaginya dengan angka ganjil dan membuatnyareturn this;
sehingga Anda bisa membuat rantai metode lain setelahnya.Solusi jQuery murni.
(tidak diperlukan jquery-ui / animate / warna.)
Jika yang Anda inginkan adalah efek "flash" kuning itu tanpa memuat warna jquery:
Skrip di atas hanya melakukan 1s yellow fadeout, sempurna untuk memberi tahu pengguna bahwa elemen telah diperbarui atau yang serupa.
Pemakaian:
sumber
Ini mungkin jawaban yang lebih baru, dan lebih pendek, karena beberapa hal telah dikonsolidasikan sejak posting ini. Membutuhkan jquery-ui-effect-highlight .
http://docs.jquery.com/UI/Effects/Highlight
sumber
Bagaimana dengan jawaban yang sangat sederhana?
$('selector').fadeTo('fast',0).fadeTo('fast',1).fadeTo('fast',0).fadeTo('fast',1)
Berkedip dua kali ... itu saja orang!
sumber
Saya tidak percaya ini belum pada pertanyaan ini. Yang harus Anda lakukan:
Ini melakukan persis apa yang Anda ingin lakukan, sangat mudah, bekerja untuk keduanya
show()
danhide()
metode.sumber
Akan a
efek pulsa(offline) Pengaya JQuery sesuai untuk apa yang Anda cari?Anda dapat menambahkan durasi untuk membatasi efek pulsa dalam waktu.
Seperti yang disebutkan oleh JP dalam komentar, sekarang ada plugin pulse- nya yang diperbarui .
Lihat repo GitHub- nya . Dan ini demo .
sumber
sumber
Menemukan ini banyak bulan kemudian tetapi jika ada yang peduli, sepertinya ini adalah cara yang bagus untuk mendapatkan sesuatu untuk flash secara permanen:
sumber
Kode-kode berikut ini berfungsi untuk saya. Tentukan dua fungsi fade-in dan fade-out dan letakkan mereka dalam panggilan balik satu sama lain.
Berikut ini mengontrol waktu flash:
sumber
Saya sedang mencari solusi untuk masalah ini tetapi tanpa mengandalkan jQuery UI.
Inilah yang saya buat dan berfungsi untuk saya (tidak ada plugin, hanya Javascript dan jQuery); - Inilah biola yang berfungsi - http://jsfiddle.net/CriddleCraddle/yYcaY/2/
Atur parameter CSS saat ini dalam file CSS Anda sebagai css normal, dan buat kelas baru yang hanya menangani parameter untuk mengubah yaitu warna latar belakang, dan atur ke '! Penting' untuk mengganti perilaku default. seperti ini...
Kemudian cukup gunakan fungsi di bawah ini dan meneruskan elemen DOM sebagai string, integer untuk berapa kali Anda ingin flash terjadi, kelas yang ingin Anda ubah, dan integer untuk penundaan.
Catatan: Jika Anda memasukkan angka genap untuk variabel 'kali', Anda akan berakhir dengan kelas yang Anda mulai, dan jika Anda melewati angka ganjil Anda akan berakhir dengan kelas toggled. Keduanya berguna untuk hal yang berbeda. Saya menggunakan 'i' untuk mengubah waktu tunda, atau mereka semua akan menyala pada waktu yang sama dan efeknya akan hilang.
sumber
Seperti fadein / fadeout Anda bisa menggunakan animate css / delay
Sederhana dan fleksibel
sumber
3000 adalah 3 detik
Dari opacity 1 ia memudar menjadi 0,3, lalu ke 1 dan seterusnya.
Anda dapat menumpuk lebih banyak dari ini.
Hanya jQuery yang dibutuhkan. :)
sumber
Ada solusi untuk bug latar belakang bernyawa. Intisari ini mencakup contoh metode sorotan sederhana dan penggunaannya.
https://gist.github.com/1068231
sumber
Jika menyertakan perpustakaan berlebihan di sini adalah solusi yang dijamin berfungsi.
Siapkan pemicu acara
Atur warna latar elemen blok
Di dalam setTimeout gunakan fadeOut dan fadeIn untuk membuat sedikit efek animasi.
Di dalam setTimeout kedua mengatur ulang warna latar belakang default
Diuji dalam beberapa peramban dan berfungsi dengan baik.
sumber
Sayangnya jawaban teratas membutuhkan JQuery UI. http://api.jquery.com/animate/
Berikut ini adalah solusi vanilla JQuery
http://jsfiddle.net/EfKBg/
JS
CSS
HTML
sumber
flash
Obyek jQuery, itu berfungsi dengan baik.var flash = $("<div class='flash'></div>"); $(".hello").prepend(flash); flash.show().fadeOut('slow');
Ini versi solusi colbeerhey yang sedikit lebih baik. Saya menambahkan pernyataan kembali sehingga, dalam bentuk jQuery yang sebenarnya, kami membuat rantai peristiwa setelah memanggil animasi. Saya juga menambahkan argumen untuk menghapus antrian dan melompat ke akhir animasi.
sumber
Yang satu ini akan menggetarkan warna latar belakang elemen hingga peristiwa mouseover dipicu
sumber
Gabungkan ini dari semua yang di atas - solusi mudah untuk mem-flash sebuah elemen dan kembali ke bgcolour asli ...
Gunakan seperti ini:
Semoga ini membantu!
sumber
eval
!Inilah solusi yang menggunakan campuran animasi jQuery dan CSS3.
http://jsfiddle.net/padfv0u9/2/
Pada dasarnya Anda mulai dengan mengubah warna ke warna "flash" Anda, dan kemudian menggunakan animasi CSS3 untuk membiarkan warna memudar. Anda perlu mengubah durasi transisi agar "flash" awal menjadi lebih cepat daripada fade.
Di mana kelas-kelas CSS adalah sebagai berikut.
sumber
berikan saja elem.fadeOut (10) .fadeIn (10);
sumber
Ini cukup umum sehingga Anda dapat menulis kode apa pun yang ingin Anda menghidupkan. Anda bahkan dapat mengurangi penundaan dari 300 ms menjadi 33 ms dan memudar warna, dll.
sumber
Anda dapat menggunakan plugin jquery Pulsate untuk memaksa memfokuskan perhatian pada elemen html dengan kontrol atas kecepatan dan pengulangan dan warna.
JQuery.pulsate () * dengan Demo
penginisialisasi sampel:
sumber