• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

skróty klawiszowe w HTML

+3 głosów
1,617 wizyt
pytanie zadane 22 marca 2021 w HTML i CSS przez mateusz45 Gaduła (3,300 p.)
edycja 22 marca 2021 przez Comandeer
cześć. mam pytanie czy da się w HTML ps tylko w HTML zrobić skrót klawiszowy do swojej strony jeśli się da to bym prosił albo przykład kodu albo po prostu jak bo chce zrobić na mojej stronie skrót klawiszowy ale nie chce mi się jak zwykle grzebać w js. za odpowiedzi Bendę wdzięczny
komentarz 22 marca 2021 przez Comandeer Guru (607,960 p.)
Proszę nie formatować bez powodu tekstu.

2 odpowiedzi

+3 głosów
odpowiedź 22 marca 2021 przez Comandeer Guru (607,960 p.)

Jest coś takiego jak atrybut [accesskey].

0 głosów
odpowiedź 22 marca 2021 przez VBService Ekspert (256,580 p.)
edycja 22 marca 2021 przez VBService

A może jednak rozważysz zastosowanie js-a, przy "obsłudze" skrótów klawiszowych.  wink

W podanym przykładzie, naciśnięcie klawisza: lewyAlt, powoduje podświetlenie liter "skrótu klawiszowego" do menu i tak: Alt+G - wyświetla główną itd. (oczywiście można klikać w elementy menu)

<nav>
  <ul>
    <li title="Alt+G" tabindex="1">Główna</li>
    <li title="Alt+O" tabindex="2">Oferta</li>
    <li title="Alt+K" tabindex="3">Kontakt</li>
  </ul>
</nav>
<div class="tab-view" data-currentIndex="null"></div>

<template><!-- tab 1 -->
  <h1>Główna</h1>
  <p>Lorem Ipsum jest tekstem stosowanym jako przykładowy wypełniacz w przemyśle poligraficznym. Został po raz pierwszy użyty w XV w. przez nieznanego drukarza do wypełnienia tekstem próbnej książki. Pięć wieków później zaczął być używany przemyśle elektronicznym, pozostając praktycznie niezmienionym. Spopularyzował się w latach 60. XX w. wraz z publikacją arkuszy Letrasetu, zawierających fragmenty Lorem Ipsum, a ostatnio z zawierającym różne wersje Lorem Ipsum oprogramowaniem przeznaczonym do realizacji druków na komputerach osobistych, jak Aldus PageMaker</p>
</template>

<template><!-- tab 2 -->
  <h1>Oferta</h1>
  <p>Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae.</p>
  <ul>
    <li>At vero eos et accusamus et iusto odio</li>
    <li>Nam libero tempore, cum soluta nobis est</li>
    <li>Et harum quidem rerum facilis est et expedita distinctio</li>
  </ul>
</template>

<template><!-- tab 3 -->
  <form>
    <fieldset>
      <legend>Kontakt:</legend>
      <label for="f_full_name">Twoja nazwa:</label>
      <input type="text" id="f_full_name" name="f_full_name" value="Tomasz Wizytator" autofocus>
      <label for="f_email">Twój email:</label>
      <input type="email" id="f_email" name="f_email" value="t.visitor@visitor.com">
      <textarea name="message" rows="5" cols="30">Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</textarea>      
      <input type="submit" value="Submit">
    </fieldset> 
  </form>
</template>
:root {
  --menu-first-letter: none;
}
nav ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  user-select: none;
}
nav li {
  display: inline-block;
  padding: 1em;
  cursor: pointer;
}
nav li:first-letter {
  text-decoration: var(--menu-first-letter);
}
.tab-view {
  margin: 1em;
  width: 90vw;
}
.tab-view form {
  width: 300px;
}
.tab-view form label, input { 
  display: block;
}
.tab-view form label, textarea { 
  margin: 0.5em 0;
}
const root = document.documentElement,
      menu_items = document.querySelectorAll('nav li'),
      tabs = document.querySelectorAll('template'),
      tab_viwe = document.querySelector('.tab-view');

window.focus();
window.onload = () => {
  menu_items[0].focus();
}

document.body.addEventListener('keydown', e => {
  //console.log(e.keyCode, e.code, e.which);
  //e.preventDefault(); 
  let index;
  
  if (e.altKey) { // 18 "AltLeft"
    const code = e.code || e.which || e.keyCode;
    switch(code) {
      case 71:
      case 'KeyG': // Alt + G
        index = 0;
        break;
      case 79:
      case 'KeyO': // Alt + O
        index = 1;
        break;
      case 75:
      case 'KeyK': // Alt + K
        index = 2;
        break;
    }
    
    showSelectedTab(index);
    root.style.setProperty('--menu-first-letter', 'underline');
  }
});

document.body.addEventListener('keyup', e => {
  e.preventDefault();
  if (!e.altKey) { // 18 "AltLeft"
    root.style.setProperty('--menu-first-letter', 'none');
  }
});

menu_items.forEach((item, index) => {
  item.addEventListener('click', () => {
    showSelectedTab(index);
  })
});

function showSelectedTab(index = null) {
  const current_index = tab_viwe.getAttribute('data-currentIndex');
  if (index != null && index != current_index) {
    tab_viwe.innerHTML = '';
    const clon = tabs[index].content.cloneNode(true);
    tab_viwe.appendChild(clon);
    tab_viwe.setAttribute('data-currentIndex', index);
    menu_items[index].focus();
  }  
}

 

Podobne pytania

+2 głosów
1 odpowiedź 581 wizyt
pytanie zadane 14 marca 2023 w JavaScript przez Dariusz Hozer Użytkownik (920 p.)
0 głosów
1 odpowiedź 370 wizyt
pytanie zadane 6 października 2018 w Systemy operacyjne, programy przez kisiel23 Początkujący (280 p.)
0 głosów
3 odpowiedzi 892 wizyt
pytanie zadane 22 listopada 2016 w Sprzęt komputerowy przez Kuba321 Użytkownik (730 p.)

93,741 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...