#javascript
#javascript
Вопрос:
Как заставить определенную клавишу заставлять окно / выделение на вашем экране загораться при нажатии? например, если я нажму M, я хочу, чтобы загорелось среднее окно
Комментарии:
1.
window.addEventListener("keypress", function (e) { /* check e.keyCode, do stuff */ });
2. итак, у меня есть сетка, и я хочу, чтобы загорелось окно 5.
3. если это мой HTML</head> <body> <div class=»grid-container»> <div class=»item1″> 1</div> <div class=»item2″> 2</div> <div class=»item3″>3</div> <div class=»item4″> 4</div> <div class=»item5″> 5</div> <класс div =»item6″>6</div> <div class=»item7″>7</div> <div class=»item8″>8</div> <div class=»item9″>9</div> </div> </body> </html>
4. что мне нужно написать в javascript, чтобы оно загорелось? извините, я новичок во всем этом процессе и просто хотел бы получить разъяснения
5. Здесь вам понадобится какой-нибудь скрипт libby. Я бы использовал имя класса keyCode для сопоставления.
Ответ №1:
Далее мы перечисляем для клавиши вниз и ищем элемент, реализующий класс, и добавляем подсветку. (ПРИМЕЧАНИЕ: Используйте querySelectorAll и forEach, если вам нужно несколько)
const findDiv = (key) => {
let className = `.key${key}`;
return document.querySelector(className);
};
document.addEventListener('keydown', (e) => {
let div = findDiv(e.key);
if(div) div.classList.add('highlight');
});
document.addEventListener('keyup', (e) => {
document.querySelectorAll('.item').forEach(d => d.classList.remove('highlight'));
});
.highlight {
background-color: yellow;
}
<div class="grid-container">
<div class="item keyShift">1</div>
<div class="item keyArrowDown">2</div>
<div class="item keyArrowUp">3</div>
<div class="item keyArrowLeft">4</div>
<div class="item keyArrowRight">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
<div class="item">9</div>
</div>
Комментарии:
1. Боже, большое вам спасибо за помощь, действительно ценю, что помогаете мне изучать новые сложные техники
2. Нет проблем, удачного кодирования.
3. Я не думаю,
class = "item keyShift"
что это сработает. С помощью «Shift» нам нужно указатьclass = "item keyShiftLeft keyShiftRight"
4. Это действительно работает. Попробуйте :). Libby вот полный список названий клавиш. developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key /…
5. @Cat помните, что это всего лишь демонстрация, я уверен, что Либби имеет в виду свои собственные клавиши. Список поможет ей выбрать.