"Вспышка" background-color при клике на кнопке

543
04 февраля 2022, 06:20

как сделать чтобы при клике на кнопке button background элемента <div id="div1" class="div1"></div> плавно стал на 0.5 секунд background-color:red; и затем вернулся бы как было?

я даже загуглить не смог

Answer 1

let button = document.querySelector('button'); 
 
button.addEventListener('click', function(e){ 
  button.classList.add('b'); 
  setTimeout( () => { 
       button.classList.remove('b'); 
  }, 500) 
});
.b{ 
    background-color: red; 
    transition: 0.5s; 
  }
<button>text</button>

Answer 2

Спасибо огромное! Я немного переделал

(function($) { 
  $('.div1').on("click", function() { 
    var elem = $('.div2'); 
    elem.addClass("testa"); 
    setTimeout(function() { 
      elem.removeClass('testa'); 
    }, 300); 
  }); 
})(jQuery);
.testa { 
  background-color: red; 
  box-shadow: 0px 0px 40px 20px red; 
  transition: background-color 100ms linear, box-shadow 0.5s ease-in-out; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div id="div1" class="div1">div1</div> 
<div id="div2" class="div2">div2</div>

Вот только не пойму почему background-color применяется не так плавно как box-shadow :(

Answer 3

Вариант с плавным изменением на jquery

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div id="div1" class="div1">Кнопка</div> 
 
<script>(function($) { 
        $('div').on("click", function(){ 
            var elem = $(this); 
            elem.css('background', 'red'); 
            elem.css('transition-property', 'background-color'); 
            elem.css('transition-duration', '1s'); 
            setTimeout(function(){ 
                elem.css('background', ''); 
            }, 500); 
        }); 
    })(jQuery); 
</script>

READ ALSO
аналог Angular FormControl.setValue во Vue.js

аналог Angular FormControl.setValue во Vue.js

Недавно начал учить Vuejs

77
Как вставить значение в FormData

Как вставить значение в FormData

Не получается вставить значение grecaptchagetResponse() в FormData() я использовал метод append() из интерфейса FormData, я пробовал по разному объявлять переменную...

158
Как в select записать function

Как в select записать function

Как в select(option) записать функцию(func_2)?

156
как браузер использует URL в DOCTYPE

как браузер использует URL в DOCTYPE

Зачем при объявлении DOCTYPE указывать URL? Что браузер дальше делает с этой информацией? Если открыть URL например http://wwww3

99