@uuushka

Как использовать псевдокласс :active при нажатии клавиши?

Суть такая, что есть компонента, которая меняет стиль при нажатии на нее мышью с помощью псевдокласса :active.
Тоже самое поведение мне необходимо сделать для клавиши. То есть при нажатии клавиши стиль меняется, при отжатии - возвращается в исходное состояние. убил много времени уже, к сожалению..
  • Вопрос задан
  • 686 просмотров
Пригласить эксперта
Ответы на вопрос 2
нужно отслеживать события keydown и keyup, добавлять и убирать классы на нужных элементах

UPD
Для реакта не напишу, пример с jquery
var $elementToHighlight = $('#someId');
$(document).on('keydown',function(e){
  if(e.keyCode==13){
    //enter
    $elementToHighlight.addClass('hightlighted');
  }
}).on('keyup',function(){
  $elementToHighlight.removeClass('hightlighted');
});
Ответ написан
Комментировать
@uuushka Автор вопроса
Дмитрий Кравченко ,т.е. что-то такое:
handleOnKeyUp() {
  this.setState({isPressed: this.state.isPressed})
};

handleOnKeyDown() {
  this.setState({isPressed: this.state.isPressed})
};

render(){
    var style = classNames({
       "pressed-style": this.state.isPressed,
       "unpressed-style": !this.state.isPressed    
})
     return  <button className={style}
                 onKeyUp={this.handleOnKeyUp}
                 onKeyDown={this.handleOnKeyDown}
                 >Button</button>;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы