Hé! List dobozszállítóként tisztességes részesedésem volt a tapasztalatokról, amelyek mindenféle kérdéssel foglalkoznak a listadobozokkal kapcsolatban. Az egyik leggyakoribb probléma, amellyel a felhasználók gyakran szembesülnek, a billentyűzet -események kezelése egy lista mezőben. Ebben a blogbejegyzésben megosztom néhány tippet és trükköt arról, hogyan lehet hatékonyan kezelni a billentyűzet -eseményeket.
Először is, értjük meg, miért fontos a billentyűzet -események kezelése a lista mezőben. Számos alkalmazásban a lista dobozokat használják az elemek listájának megjelenítéséhez, és a felhasználóknak képesnek kell lenniük a billentyűzet segítségével navigálni. Például érdemes felhasználni a fel- és lefelé mutató nyíl kulcsokat a különféle elemek kiválasztására, vagy az ENTER gombot a kiválasztott elemnél történő művelet végrehajtásához. Megfelelő billentyűzet -eseménykezelés nélkül a felhasználói élmény nagyon frusztráló lehet.
Alapvető billentyűzet -események kezelése
A legalapvetőbb billentyűzetes események, amelyeket egy lista dobozhoz szeretne kezelni, a Arrow Key Events (fel és le) és az ENTER Key esemény. Kezdjük a Arrow Key eseményekkel.
Amikor a felhasználó megnyomja az UP nyílgombot, akkor a kiválasztást fel kell mozgatni a listabeevelben. Hasonlóképpen, amikor megnyomják a lefelé mutató nyílgombot, akkor a választást egy elemet le kell mozgatni. Íme egy egyszerű példa arra, hogyan lehet ezt elérni a JavaScript -ben:
const listaBox = document.getElementById ('myListbox'); listabox.addEventListener ('keydown', function (esemény) {if (Event.key === 'nyíl') {const selectedIndex = listabox.selectedIndex; if (selectionIndex> 0) {listbox.selectedIndex = selectedIndex - 1; listabox.options.length - 1) {listaBox.SelectedIndex = selectedIndex + 1;
Ebben a kódban először hivatkozást kapunk a List Box elemre annak azonosítójával. Ezután hozzáadunk egykulcstartóEseményhallgató a lista mezőhöz. A rendezvény -hallgató belsejében megvizsgáljuk, hogy a megnyomott kulcs a fel vagy le a nyílgomb. Ha ez a UP nyílgomb, és van egy elem a jelenleg kiválasztott elem felett, akkor a választást felfelé mozgatjuk. Ha ez a lefelé mutató nyílgomb, és a jelenleg kiválasztott elem alatt van egy elem, akkor a választást lefelé mozgatjuk.
Beszéljünk most az ENTER Key eseményről. Amikor a felhasználó megnyomja az Enter billentyűt, miközben a lista mezőben egy elem van kiválasztva, érdemes végrehajtania valamilyen műveletet, például a kiválasztott elem részletes nézetének megnyitása vagy a kiválasztott érték alapján történő keresés végrehajtása. Így tudja kezelni az Enter billentyűzet eseményét:
listabox.addEventListener ('keydown', function (esemény) {if (Event.key === 'Enter') {const SelectedIndex = listaBox.SelectedIndex; const selectedValue = listbox.options [selectedIndex] .Value; // Végezzen el néhány műveletet a kiválasztott értékkonzollal.
Ebben a kódban ismét hozzáadunk egykulcstartóEseményhallgató a lista mezőhöz. A rendezvény -hallgató belsejében megvizsgáljuk, hogy a megnyomott kulcs az Enter billentyű. Ha igen, akkor megkapjuk a kiválasztott elem indexét, majd megkapjuk az elem értékét. Ezután ezt az értéket felhasználhatja bármilyen szükséges művelet végrehajtására.


Speciális billentyűzetes eseménykezelés
Az alapvető nyílbillentyűs és a kulcsfontosságú események beírása mellett van néhány más billentyűzetes esemény, amelyeket érdemes kezelni a továbbfejlesztett felhasználói élmény érdekében. Például érdemes kezelni az oldal felfelé és az oldal lefelé mutató gombjait, hogy a felhasználó gyorsan görgessen a lista mezőn.
Így tudja kezelni az oldalt felfelé és az oldal lefelé mutató gombjait:
listabox.addEventListener ('keydown', function (esemény) {if (Event.key === 'PageUp') {const VisibleItems = 10; // látható elemek száma a lista mezőben constedIndEx = listaBox.selectedIndex; if (selectedIndex> = láthatóItems) {listabox.SeledIndEx = selectInDex - visibleITExs; }} egyébként, ha (Event.Key === „PAGEDOWN”) {const VisibleItems = 10; 1;
Ebben a kódban hozzáadjuk akulcstartóEseményhallgató a lista mezőhöz, és ellenőrizze, hogy a megnyomott kulcs az oldal felfelé vagy az oldal lefelé mutató gombja. Ha ez az oldal Up gomb, akkor a kiválasztást a lista mezőben látható elemek számával mozgatjuk. Ha ez az oldal lefelé mutató gomb, akkor a kiválasztást a látható elemek száma alapján mozgatjuk.
Más billentyűparancsok kezelése
Érdemes lehet megvalósítani néhány egyedi billentyűparancsot a lista mezőhöz. Például megengedheti, hogy a felhasználó gyorsan kiválasztja a listában szereplő első elemet az otthoni kulcs megnyomásával, és az utolsó elemet a End gomb megnyomásával.
Így tudja kezelni az otthoni és a véggombokat:
listabox.addEventListener ('keydown', function (esemény) {if (Event.key === 'Home') {ListBox.selectedIndex = 0;} egyébként, ha (Event.key === 'end') {listaBox.selectedIndex = listaBox.options.Length - 1;}}});
Ebben a kódban hozzáadjuk akulcstartóEseményhallgató a lista mezőbe, és ellenőrizze, hogy a megnyomott kulcs az otthoni vagy a véggomb. Ha ez az otthoni kulcs, akkor a kiválasztott indexet 0 -ra állítjuk, amely kiválasztja a lista első elemet. Ha ez a véggomb, akkor a kiválasztott indexet a lista utolsó elemére állítjuk be.
Integrálás más összetevőkkel
Időnként érdemes integrálni a lista mezőt az oldalán lévő más alkatrészekkel a billentyűzet eseményei alapján. Például rendelkezhet egy szöveges bemeneti mezővel, ahol a felhasználó beírhatja a keresési kifejezést, és amikor megnyomja az Enter billentyűt, miközben a List Box fókuszban van, akkor a keresést végzi a kiválasztott elem segítségével a lista mezőben és a bemeneti mezőben található szöveg.
Íme egy példa arra, hogyan lehet ezt elérni:
<input type = "text" id = "searchinput"> <select id = "myListbox"> <opció érték = "Opció1"> 1 opció </opció> <opció érték = "Option2"> Opciót 2 </ opció> <opció érték = "Option3"> 3 opció> </select> </select>
const listaBox = document.getElementById ('myListbox'); const searchInput = document.getElementById ('searchInput'); listbox.addEventListener ('keydown', function (esemény) {if (Event.key === 'Enter') {const selectedIndex = listaBox.SelectedIndex; const selectedValue = listabox.options [selectedIndex] .Value; const searchTerm = searchInput.value; // Keresés a kiválasztott érték és a keresési kifejezés használatával; });
Ebben a kódban először hivatkozásokat kapunk a lista mezőre és a keresési bemeneti mezőre. Ezután hozzáadunk egykulcstartóEseményhallgató a lista mezőhöz. Amikor a felhasználó megnyomja az Enter billentyűt, akkor a kiválasztott értéket a lista mezőből és a szöveget a keresési bemeneti mezőből kapjuk, majd ezeket az értékeket felhasználhatjuk a keresés elvégzéséhez.
Harmadik party könyvtárak használata
Ha nem akarja írni az összes billentyűzet -eseménykezelő kódot a semmiből, van néhány harmadik parti könyvtár, amelyek segíthetnek Önnek. Például a JQuery -nek sok hasznos funkciója van az események kezeléséhez, beleértve a billentyűzet eseményeit.
Így lehet a jQuery segítségével kezelni a nyílgombot, és megadhatja a kulcs eseményeit:
<!DOCTYPE html> <html> <head> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <select id="myListBox"> <option value="option1">Option 1</option> <option value="option2">Option 2</option> <option Value = "Option3"> 3 Opció </ option> </ secute> <script> $ ('#myListbox'). Keydown (function (esemény) {if (event.key === 'nyíl ”) {const selectedIndex = $ (this) .Prop (' selectedIndex '); if (selectionIndex> 0) {$ (ez) .prop (selectedEx', selectedInDex - 1); === 'ArrowDown') {constindex = $ (ez). selectValue = $ (ez). </script> </body> </html>
Ebben a kódban először a jQuery könyvtárat tartalmazzuk a HTML fájlba. Ezután a jQuery segítségével válasszuk ki a lista mezőt, és hozzáadjuk akulcstartóEseményhallgató. A rendezvény -hallgató belsejében a nyílgombot kezeljük, és a kulcsfontosságú eseményeket ugyanolyan módon írjuk be, mint a Vanilla JavaScript példákban.
Következtetés
A billentyűzet -események kezelése a lista mezőben fontos része a jó felhasználói élmény biztosításának. Az olyan alapvető események, mint a nyílkulcsok és az Enter billentyű, valamint a fejlettebb események, például az oldal, az oldal, az otthoni és a véggombok kezelésének kezelésével, a lista mezőt felhasználóbbá teheti - barátságosabbá. A lista mezőt integrálhatja az oldalán lévő többi összetevővel, és a harmadik pártkönyvtárakat használhatja a fejlesztési folyamat egyszerűsítéséhez.
Ha a magas színvonalú lista dobozok piacán vagy, itt vagyunk, hogy segítsünk! Kínálunk széles választékot a lista doboztermékek számára, amelyeket az Ön egyedi igényeinek kielégítésére terveztek. Függetlenül attól, hogy szüksége van egy egyszerű lista dobozra egy kis projekthez, akár egy bonyolultabb egy nagy méretű alkalmazáshoz, akkor fedeztük Önt.
Ha érdekliÉrzékelőbilincs,Ultrahangos víz tok, vagyCsőtest, Kapcsolódó termékeket és megoldásokat is biztosíthatunk.
Ha szeretné megvitatni az Ön igényeit, vagy kap egy árajánlatot, ne habozzon kapcsolatba lépni velünk. Várjuk, hogy együtt dolgozzunk veled, és segítsünk megtalálni a projekt tökéletes listáját.
Referenciák
- JavaScript dokumentáció az MDN webdokumentumokról
- JQuery hivatalos dokumentáció
