Как я уже говорил выше, .addClass()
мгновенно.Таким образом, он не принимает метод обратного вызова.Кроме того, он не имеет возможности узнать длительность вашего CSS-перехода.
Вместо этого вы можете использовать setTimeout()
.Она будет выполнять данную функцию после ожидания X миллисекунд.
Первым аргументом будет функция, которую вы написали в своем вопросе.Второй параметр соответствует длине вашей CSS-анимации.
(Например, 3s
анимация будет 3000
.)
$("#firstnamesubmitbutton").click(function() {
var $hrmed = $(".hrmed");
$hrmed.addClass("lineanimation");
setTimeout(function() {
$(".firstnamesection").addClass("animate fadeOut hidden");
$hrmed.removeClass("lineanimation");
$(".lastnamesection").removeClass("hidden");
console.log("Code was executed");
}, 3000);
});
.hrmed {
padding: 50px;
border: 1px solid black;
}
.hrmed.lineanimation {
background: blue;
transition: background 3s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="firstnamesubmitbutton">Click me</button>
<div class="hrmed"></div>