Я использую Bootstrap 4 для стиля. У меня есть кнопка на моей странице, которую я хочу, чтобы пользователи могли запускать нажатием клавиши.
Я добавил следующий Javascript, и он работает.
<script>
document.addEventListener('keyup', function (event) {
if (event.defaultPrevented) {
return;
}
var key = event.key || event.keyCode;
if (key === 'j' || key === 'KeyJ' || key === 74) {
document.getElementById("myButton").click();
}
});
</script>
HTML для этого просто
<button id="myButton" class="btn btn-success btn-lg" type="submit">Button</button>
и выглядит как любая кнопка в стиле Bootstrap .
ПРОБЛЕМА . Обычно, когда вы нажимаете кнопку, появляется небольшая анимация, которая воспроизводится при нажатии Bootstrap. Когда щелчок запускается с помощью JavaScript (то есть пользователь использовал нажатие клавиши), эта анимация не происходит, и пользователь не получает никаких отзывов о том, что кнопка была нажата. Поскольку пользователь будет преимущественно запускать нажатие через нажатие клавиши, я действительно хочу, чтобы обратная связь по клику была видимой.
Что не так с моим кодом, который нарушает анимацию Bootstrap? Есть ли другой подход, который позволял бы мне запускать нажатия кнопок при нажатии клавиш, как у меня здесь, но не нарушал анимацию обратной связи при нажатии?
CODEPEN : https://codepen.io/anon/pen/byebxg
В демоверсии Codepen вы можете попробовать навести курсор мыши и нажать на кнопку, чтобы увидеть небольшую анимацию Bootstrap (в демо ничего не происходит). Вы также можете «щелкнуть» по нему, нажав «j» из-за фрагмента JavaScript (я добавил предупреждение, показывающее, что прослушивание нажатий клавиш работает). Однако, когда кнопка «нажата» таким образом, анимация кнопки не отображается. Есть ли способ заставить его играть, даже когда щелчок запускается сценарием JS?