Проблема в том, что встроенные стили, которые вы устанавливаете с помощью JS, имеют приоритет над теми, которые исходят из классов CSS, из-за правил специфичности CSS .
Добавление!important
объявление на фоне при наведении, например, работает:
.LinkBaraStanga:hover {
background-color: rgb(132, 197, 232) !important;
}
Однако лучшим решением было бы создание разных классов для разных случаев кнопки, чтобы вы могли лучше управлять различными состояниями,и не сталкивайтесь с необходимостью переопределить предыдущее объявление !important
:
.LinkBaraStanga--off {
background-color: rgb(154, 208, 237);
...
}
.LinkBaraStanga--off:hover {
background-color: rgb(132, 197, 232);
}
.LinkBaraStanga--on {
background-color: rgb(154, 208, 237);
}
И затем вместо установки style
элемента с помощью JS добавьте или удалите нужные классы.Например:
<button class="LinkBaraStanga LinkBaraStanga--off">
И на JS вызовите эти функции вместе для переключения между обоими классами:
element.classList.toggle('LinkBaraStanga--on')
element.classList.toggle('LinkBaraStanga--off')
Для получения дополнительной информации о том, как установить классы элемента, обратитесь кв classList на MDN .