КАК выделить кнопку при нажатии другой кнопки

#javascript #css #button

#javascript #css #кнопка

Вопрос:

У меня есть две кнопки на странице. Я оформил вторую кнопку с помощью CSS, чтобы она светилась светло-серым цветом. Теперь я хочу добавить какое-то событие (я думаю, с помощью JS?), Которое выделяет только вторую кнопку после нажатия на первую кнопку.

     <button class="tempo1" type="button" onclick="buttonShow()">Datenschutzerklärung</button> 

<!-- Und dann die Info-Box -->
<div id="infoBox" style="width: 400px; padding: 5px; background-color: white; border: 2px solid #CCCCCC">

TEXT
  <p style="text-align: center; margin-top: 20px">
    <button type="button" onclick="buttonHide()">Schließen</button>
  </p>
</div>

<!-- Der JavaScript-Code -->

<style>

.tempo1 {
  background-color: #A4A4A4;
  -webkit-border-radius: 10px;
  border-radius: 10px;
  border: none;
  color: #FFFFFF;
  cursor: pointer;
  display: inline-block;
  font-family: Arial;
  font-size: 20px;
  padding: 5px 10px;
  text-align: center;
  text-decoration: none;
  -webkit-animation: glowing 1500ms infinite;
  -moz-animation: glowing 1500ms infinite;
  -o-animation: glowing 1500ms infinite;
  animation: glowing 1500ms infinite;
}

.tempo1:focus {outline:0;}

@-webkit-keyframes glowing {
  0% { background-color: #848484; -webkit-box-shadow: 0 0 3px #848484; }
  50% { background-color: #A4A4A4; -webkit-box-shadow: 0 0 40px #A4A4A4; }
  100% { background-color: #848484; -webkit-box-shadow: 0 0 3px #848484; }
}

@-moz-keyframes glowing {
  0% { background-color: #848484; -moz-box-shadow: 0 0 3px #848484; }
  50% { background-color: #A4A4A4; -moz-box-shadow: 0 0 40px #A4A4A4; }
  100% { background-color: #848484; -moz-box-shadow: 0 0 3px #848484; }
}

@-o-keyframes glowing {
  0% { background-color: #848484; box-shadow: 0 0 3px #848484; }
  50% { background-color: #A4A4A4; box-shadow: 0 0 40px #A4A4A4; }
  100% { background-color: #848484; box-shadow: 0 0 3px #848484; }
}

@keyframes glowing {
  0% { background-color: #848484; box-shadow: 0 0 3px #848484; }
  50% { background-color: #A4A4A4; box-shadow: 0 0 40px #A4A4A4; }
  100% { background-color: #848484; box-shadow: 0 0 3px #848484; }
}
}

</style>
  

В принципе, я хочу поставить условие для кнопки (class = temp1) в верхней строке. Приведенный ниже код CSS должен быть активирован только при нажатии другой кнопки (я не перечислил код для этой кнопки здесь). Кроме того, я был бы признателен за любой совет, если есть способ оформить кнопку аналогичным образом с меньшим количеством кода.
Если идея, стоящая за этим, или мой вопрос недостаточно ясны, пожалуйста, спросите 🙂

Спасибо за ваше время и помощь!

Ответ №1:

вы можете добиться этого в js, прослушивая события нажатия на первой кнопке и добавляя класс ‘glow’ ко 2-й кнопке, вот так:

 //select btn1, and listen to click events on it
var btn1 = document.getElementById("btn1");
btn1.addEventListener("click", addGlow);

//the function addGlow, adds the glow class to btn2
function addGlow() {
  var btn2 = document.getElementById("btn2");
  btn2.classList.add("glow");
}  
 button{
  width:100px;
  height:50px;
  background-color:grey;
  border-radius:5px;
  border:none;
}

.glow{
  background-color: cyan;
  }  
 <button id="btn1">button 1</button>
<button id="btn2">button 2</button>  

обратите внимание, что этот код добавляет только класс css glow, если вы хотите, чтобы кнопка «отключилась» в какой-то момент, вам нужно удалить класс glow, что можно сделать следующим образом: btn2.classList.remove("glow");

надеюсь, это поможет 🙂

Комментарии:

1. Большое вам спасибо, отличная помощь! Для новичков вроде меня: кнопки должны быть созданы первыми (?), Прежде чем скрипт сможет запуститься.

2. @InPanic да 🙂 в противном случае JS не сможет «выбрать» объект и прослушать события нажатия