Atau jika Anda tidak menginginkan transisi bertahap antara acara dan sembunyikan (mis. Kursor teks yang berkedip), Anda bisa menggunakan sesuatu seperti:
/* Also use prefixes with @keyframes and animation to support current browsers */
@keyframes blinker {
from { visibility: visible }
to { visibility: hidden }
/* Alternatively you can do this:
0% { visibility: visible; }
50% { visibility: hidden; }
100% { visibility: visible; }
if you don't want to use `alternate` */
}
.cursor {
animation: blinker steps(1) 500ms infinite alternate;
}
Setiap 1s
.cursor
akan berubah dari visible
menjadi hidden
.
Jika animasi CSS tidak didukung (misalnya dalam beberapa versi Safari) Anda dapat mundur ke interval JS sederhana ini:
(function(){
var show = 'visible'; // state var toggled by interval
var time = 500; // milliseconds between each interval
setInterval(function() {
// Toggle our visible state on each interval
show = (show === 'hidden') ? 'visible' : 'hidden';
// Get the cursor elements
var cursors = document.getElementsByClassName('cursor');
// We could do this outside the interval callback,
// but then it wouldn't be kept in sync with the DOM
// Loop through the cursor elements and update them to the current state
for (var i = 0; i < cursors.length; i++) {
cursors[i].style.visibility = show;
}
}, time);
})()
JavaScript sederhana ini sebenarnya sangat cepat dan dalam banyak kasus bahkan mungkin merupakan default yang lebih baik daripada CSS. Perlu dicatat bahwa banyak panggilan DOM yang membuat animasi JS lambat (mis. $ .Animate () JQuery).
Ini juga memiliki keuntungan kedua bahwa jika Anda menambahkan .cursor
elemen nanti, mereka masih akan hidup pada waktu yang sama persis dengan yang lain .cursor
sejak negara dibagikan, ini tidak mungkin dengan CSS sejauh yang saya ketahui.