Mengesan Berbilang Penekanan Kekunci Serentak dalam JavaScript
Dalam JavaScript, menentukan sama ada berbilang kekunci ditekan sekaligus boleh dicapai melalui langkah berikut:
- Buat tatasusunan JavaScript yang dipanggil "peta" atau objek.
-
Dalam pendengar acara keydown dan keyup, manipulasi tatasusunan "peta":
- Apabila kekunci ditekan (peristiwa kekunci), tetapkan kod kekunci yang sepadan atau masukkan tatasusunan kepada "benar."
- Apabila kunci dikeluarkan (peristiwa keyup), tetapkan kod kunci atau kunci yang sepadan dalam tatasusunan kepada "palsu."
- Gunakan tatasusunan "peta" untuk menyemak kombinasi kekunci tertentu dengan menilai nilai.
Contoh
// Create an array to track key presses
var map = {};
// Add event listeners for keydown and keyup events
document.addEventListener("keydown", function(e) {
map[e.keyCode] = true;
});
document.addEventListener("keyup", function(e) {
map[e.keyCode] = false;
});
// Check for key combinations using the map array
if (map[17] && map[16] && map[65]) {
console.log("Ctrl + Shift + A pressed");
}
Penggunaan
- Skrip ini memulakan tatasusunan peta kepada pantau tekanan kekunci.
- Apabila pengguna menekan kekunci "A", Elemen "map[65]" ditetapkan kepada "true" (17 untuk Ctrl, 16 untuk Shift, 65 untuk A): map = { 17: true, 16: true, 65: true }.
- Jika pengguna menekan berbilang kekunci, elemen yang sepadan dalam tatasusunan akan ditetapkan dengan sewajarnya.
- Untuk mengesan kombinasi kekunci tertentu, rujuk kepada keadaan "jika" dalam skrip, yang menyemak gabungan "Ctrl Shift A".
Nota Penting
- Penahentian KeyCode: Event.keyCode kini ditamatkan. Pendekatan alternatif, seperti event.key, harus digunakan sebaliknya.
- Pertimbangan pengendalian acara: Berhati-hati dengan mekanisme pengendalian acara yang digunakan (cth., element.onkeydown vs. element.addEventListener), kerana ia menawarkan berbeza tingkah laku.
- Lalai penyemak imbas: Kombinasi kekunci tertentu mungkin mempunyai tindakan penyemak imbas lalai. Pertimbangkan untuk menggunakan event.preventDefault() atau return false untuk menghalang tindakan ini.
- Berhati-hati apabila keluar dari pengendali acara dengan return atau e.preventDefault(), kerana ia mempunyai kesan yang berbeza pada pengendalian acara dan pelaksanaan kod.
- Untuk kefungsian yang lebih komprehensif, anda boleh membuat kelas pembantu atau menggunakan pengaturcaraan gaya deklaratif untuk lebih bersih dan terurus pendekatan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Penekanan Kekunci Serentak dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn