Selam! Bir liste kutusu tedarikçisi olarak, liste kutuları ile ilgili her türlü sorunla ilgili deneyimlerden adil payımı aldım. Kullanıcıların sıklıkla karşılaştığı yaygın sorunlardan biri, bir liste kutusundaki klavye olaylarını işlemektir. Bu blog yazısında, bir liste kutusundaki klavye olaylarının nasıl işleneceğine dair bazı ipuçlarını ve püf noktalarını paylaşacağım.
Öncelikle, bir liste kutusundaki klavye olaylarını kullanmanın neden önemli olduğunu anlayalım. Birçok uygulamada, liste kutuları bir öğe listesi görüntülemek için kullanılır ve kullanıcıların klavyeyi kullanarak bu öğelerde gezinebilmeleri gerekir. Örneğin, farklı öğeler seçmek için yukarı ve aşağı ok tuşlarını veya seçilen öğede bir eylem gerçekleştirmek için enter tuşunu kullanmak isteyebilirler. Uygun klavye olay işleme olmadan, kullanıcı deneyimi gerçekten sinir bozucu olabilir.
Temel Klavye Olay İşlemesi
Bir liste kutusu için işlemek isteyeceğiniz en temel klavye etkinlikleri, ok anahtar olayları (yukarı ve aşağı) ve enter tuş etkinliğidir. Ok anahtar etkinlikleriyle başlayalım.
Kullanıcı yukarı ok tuşuna basıldığında, seçimi liste kutusundaki bir öğe yukarı taşımak istersiniz. Benzer şekilde, aşağı ok tuşuna bastıklarında, seçimi bir öğe aşağı taşımak isteyeceksiniz. İşte bunu JavaScript'te nasıl başarabileceğinizin basit bir örneği:
const listbox = document.getElementById ('myListBox'); ListBox.AdDeventListener ('Keydown', Function (Event) {if (event.key === 'Arrowup') {constedDex = listBox.SelectedIndex; if (SelectedIndex> 0) {(ListBox.SelectedIndex> 0) {ListBox.SelectedIndex> 0) {SelectedIx === 'Archdown') {constreedIx === ' <listbox.options.Length - 1) {ListBox.SelectedIndex = SelectedIndex + 1});
Bu kodda, önce kimliğini kullanarak liste kutusu öğesine bir referans alırız. Sonra birkeçeListe kutusunu etkinleştir. Etkinlik dinleyicisinin içinde, basılan anahtarın yukarı veya aşağı ok tuşu olup olmadığını kontrol ediyoruz. Yukarı ok tuşu ise ve şu anda seçilmiş olanın üzerinde bir öğe varsa, seçimi yukarı taşıyoruz. Aşağı ok tuşu ise ve şu anda seçilmiş olanın altında bir öğe varsa, seçimi aşağı hareket ettiririz.
Şimdi, Enter Anahtar Etkinliği hakkında konuşalım. Liste kutusundaki bir öğe seçilirken kullanıcı enter tuşuna bastığında, seçilen öğenin ayrıntılı bir görünümünü açmak veya seçilen değere dayalı bir arama gerçekleştirmek gibi bazı eylemler gerçekleştirmek isteyebilirsiniz. Enter Anahtar Etkinliğini nasıl ele alabileceğiniz aşağıda açıklanmıştır:
ListBox.AdDeventListener ('Keydown', Function (Event) {if (event.key === 'Enter') {constedIndex; constedIndex; constedIndex] .Value; // Seçilen Value Console.log ('SelectedValue);
Bu kodda, yine birkeçeListe kutusunu etkinleştir. Etkinlik dinleyicisinin içinde, basılan anahtarın enter tuşu olup olmadığını kontrol ediyoruz. Eğer öyleyse, seçilen öğenin dizinini alırız ve ardından o öğenin değerini alırız. Daha sonra ihtiyacınız olan eylemi gerçekleştirmek için bu değeri kullanabilirsiniz.


Gelişmiş Klavye Olay İşlemesi
Temel Arrow tuşuna ek olarak ve anahtar olayları girin, daha gelişmiş bir kullanıcı deneyimi için işlemek isteyebileceğiniz başka klavye etkinlikleri de vardır. Örneğin, kullanıcının liste kutusundan hızlı bir şekilde geçmesi için sayfa yukarı ve sayfa aşağı anahtarları işlemek isteyebilirsiniz.
Sayfa yukarı ve sayfa aşağı anahtarları nasıl kullanabilirsiniz:
ListBox.AdDeventListener ('Keydown', Function (Event) {if (Event.Key === 'Pageup') {Const VieLITEMS = 10; // ListBox.SelectedIndex; If (SelectedIndex> = SelectBox.SelectedIndex = SelinedEx - ListeBox; } else (event.key === 'Pagedown') {const görüntüleyen öğeler = listBox.Selections.Length - VisableItems; 1}});
Bu kodda birkeçeListe kutusunu Dinleyiciye Etkinleştirin ve basılan anahtarın sayfa yukarı veya sayfa aşağı anahtarı olup olmadığını kontrol edin. Sayfa UP anahtarı ise, seçimi liste kutusundaki görünür öğelerin sayısına göre yukarı taşırız. Sayfa aşağı anahtarı ise, seçimi görünür öğelerin sayısına göre aşağı hareket ettiririz.
Diğer klavye kısayollarının işlenmesi
Liste kutunuz için bazı özel klavye kısayollarını da uygulamak isteyebilirsiniz. Örneğin, kullanıcının ana tuşuna basarak listedeki ilk öğeyi ve son tuşuna basarak son öğeyi hızlı bir şekilde seçmesine izin verebilirsiniz.
İşte evi nasıl idare edebilir ve anahtarları bitirebilirsiniz:
ListBox.AdDeventListener ('KeyDown', Function (Event) {if (Event.Key === 'Home') {ListBox.SelectedIndex = 0;} Else {(Event.Key === 'End') {ListBox.SelectionIndex = ListBox.options.Length - 1;}});
Bu kodda birkeçeListe kutusunu etkinleştirin ve basılan anahtarın ev veya son anahtar olup olmadığını kontrol edin. Ev anahtarı ise, listedeki ilk öğeyi seçen seçilen dizin 0 olarak ayarladık. Son anahtar ise, seçilen dizin listedeki son öğeye ayarladık.
Diğer bileşenlerle entegrasyon
Bazen, liste kutusunu klavye olaylarına göre sayfanızdaki diğer bileşenlerle entegre etmek isteyebilirsiniz. Örneğin, kullanıcının bir arama terimi yazabileceği bir metin giriş alanınız olabilir ve liste kutusu odaklanırken Enter tuşuna bastıklarında, liste kutusunda seçilen öğeyi ve giriş alanındaki metni kullanarak bir arama gerçekleştirirsiniz.
İşte bunu nasıl başarabileceğinize bir örnek:
<giriş türü = "text" id = "searchInput"> <SELECT ID = "MyListBox"> <Seçenek Değeri = "Seçenek1"> Seçenek 1 </seption> <Seçenek Değeri = "Seçenek 2"> Seçenek 2 </seption> <Seçenek Değeri = "Seçenek 3"> Seçenek 3 </seption> </elect>
const listbox = document.getElementById ('myListBox'); const searchInput = document.getElementById ('searchInput'); ListBox.AdDeventListener ('Keydown', Function (Event) {if (event.key === 'Enter') {const SelectedIndex; const SelectedValue; Const Searchterms [SelectedIndex] .Value; const Searchterm = searchinput.Value; // Selectedvale; searchTerm)});
Bu kodda, önce liste kutusuna ve arama giriş alanına referanslar alırız. Sonra birkeçeListe kutusunu etkinleştir. Kullanıcı Enter tuşuna bastığında, liste kutusundan seçilen değeri ve arama giriş alanından metni alırız ve ardından bu değerleri arama yapmak için kullanabiliriz.
Üçüncü Parti Kütüphanelerini Kullanma
Sıfırdan tüm klavye olay işleme kodunu yazmak istemiyorsanız, size yardımcı olabilecek bazı üçüncü parti kütüphaneleri vardır. Örneğin, JQuery, klavye etkinlikleri de dahil olmak üzere etkinlikleri işlemek için birçok yararlı işlevi vardır.
Ok tuşunu işlemek ve anahtar olayları girmek için jQuery'yi nasıl kullanabilirsiniz:
<! Doctype html> <html> <Head> <Script src = "https://code.jquery.com/jquery-3.6.0.min.js"> </sports> </wead> <body.jss "> </scriptbox"> <ption value = "option1"> Seçenek 2 <ption 2 <seption 2 <ption 2 <seption 2, <posepip value = "option3"> Seçenek 3 </seption> </select> <script> $ ('#myListBox'). Keydown (function (olay) {if (event.key === 'Arrowup') {constedIndex ('SelectedIndex'); If (SelectedIdex> 0) {bu). (Event.Nic 'Arrowdown') {const seçilmişdeks = $ (this). $ (bu) constedValue = $. </script> </body> </html>
Bu kodda, önce HTML dosyamıza JQuery kütüphanesini ekliyoruz. Sonra liste kutusunu seçmek için jQuery kullanırız vekeçeEtkinlik dinleyicisi. Etkinlik dinleyicisinin içinde, ok tuşunu ele alıyoruz ve Vanilya JavaScript örneklerinde yaptığımız gibi anahtar olayları benzer bir şekilde giriyoruz.
Çözüm
Bir liste kutusundaki klavye olaylarını işlemek, iyi bir kullanıcı deneyimi sağlamanın önemli bir parçasıdır. Arrow tuşları ve enter tuşunun yanı sıra sayfa yukarı, sayfa aşağı, ev ve son tuşlar gibi daha gelişmiş etkinlikler gibi temel etkinlikleri ele alarak, liste kutunuzu daha kullanıcı - dost canlısı hale getirebilirsiniz. Liste kutusunu sayfanızdaki diğer bileşenlerle de entegre edebilir ve geliştirme sürecini basitleştirmek için üçüncü taraf kütüphanelerini kullanabilirsiniz.
Yüksek kaliteli liste kutuları için pazardaysanız, yardım etmek için buradayız! Özel ihtiyaçlarınızı karşılamak için tasarlanmış çok çeşitli liste kutusu ürünleri sunuyoruz. İster küçük bir proje için basit bir liste kutusu ister büyük ölçekli bir uygulama için daha karmaşık bir proje isteriz, sizi ele geçirdik.
Eğer ilgileniyorsanızSensör kelepçesi-Ultrasonik su çantası, veyaBoru gövdesi, ilgili ürünler ve çözümler de sağlayabiliriz.
Gereksinimlerinizi tartışmak veya bir teklif almak istiyorsanız, bize ulaşmaktan çekinmeyin. Sizinle çalışmayı ve projeniz için mükemmel liste kutusunu bulmanıza yardımcı olmayı dört gözle bekliyoruz.
Referanslar
- MDN Web Dokümanlarında JavaScript Belgeleri
- JQuery Resmi Belgeleri
