Apakah mungkin untuk fokus pada fungsi <div>
menggunakan JavaScript focus()
?
Saya punya <div>
tag
<div id="tries">You have 3 tries left</div>
Saya mencoba fokus pada hal di atas <div>
menggunakan:
document.getElementById('tries').focus();
Tapi itu tidak berhasil. Bisakah seseorang menyarankan sesuatu ....?
javascript
focus
OM The Eternity
sumber
sumber
div
s dapat menerima input jika meluap dan menampilkan bilah gulir. Ketika adiv
dengan bilah gulir difokuskan, tombol panah akan menggulir isinya (bukan konten dari elemen lain sepertibody
).Jawaban:
Ini akan menggulir ke elemen yang dipermasalahkan, pada dasarnya "memfokuskan" itu.
sumber
Ya - ini mungkin. Untuk melakukannya, Anda perlu menetapkan tabindex ...
Tabindex 0 akan menempatkan tag "pada urutan tab alami halaman". Angka yang lebih tinggi akan memberinya urutan prioritas tertentu, di mana 1 akan menjadi yang pertama, 2 detik dan seterusnya.
Anda juga bisa memberikan tabindex -1, yang akan membuat div hanya bisa fokus dengan skrip, bukan pengguna.
Jelas, memalukan memiliki elemen yang dapat Anda fokuskan dengan skrip yang tidak dapat Anda fokuskan dengan metode input lainnya (terutama jika pengguna hanya menggunakan keyboard atau memiliki kendala serupa). Ada juga sejumlah elemen standar yang ada difokus secara default dan memiliki informasi semantik yang dibuat untuk membantu pengguna. Gunakan pengetahuan ini dengan bijak.
sumber
focus()
.tabindex
untuk elemen akan membuat focusable, yang memungkinkanfocus()
danblur()
metode, dan kemudian Anda dapat memicu fokus seperti ini:document.getElementById('tries').focus();
window.location.hash = ...
adalah cara untuk melakukan itu. fokus tidak berarti "membawa ke tampilan", itu hanya berarti secara harfiah menempatkan fokus pada elemen itu.document.getElementById('tries').scrollIntoView()
bekerja. Ini berfungsi lebih baik daripadawindow.location.hash
ketika Anda telah memperbaiki posisi.sumber
tabindex
atribut) di overlay div dan menggunakanfocus()
elemen itu sebagai gantinya.Anda dapat menggunakan tabindex
Nilai tabindex dapat memungkinkan untuk beberapa perilaku yang menarik.
sumber
sumber
$('#inner').focus();
Saya ingin menyarankan sesuatu seperti milik Michael Shimmin tetapi tanpa hardcoding hal-hal seperti elemen, atau CSS yang diterapkan untuk itu.
Saya hanya menggunakan jQuery untuk menambah / menghapus kelas, jika Anda tidak ingin menggunakan jquery, Anda hanya perlu pengganti untuk add / removeClass
--Javascript
--CSS
sumber
sumber
Untuk membuat flash perbatasan Anda dapat melakukan ini:
Ini akan membuat batas merah solid selama 1 detik kemudian menghapusnya lagi.
sumber