Я анимировал свой элемент div так, чтобы он перемещался вправо при нажатии кнопки «Войти».
Однако, когда нажимается кнопка регистрации, я хочу, чтобы div переместился обратно вправо.
Я просто хотел узнать, есть ли способ проверить, анимирован ли div влево.
var $width = $("body").width() / 2;;
var $animatedDiv = $(".hero-container");
$("#sign-in").click(function() {
$animatedDiv = $(".hero-container").animate({
"left": $width
}, "slow");
$("#welcome").html("Sign In");
$(".form").show();
});
$("#sign-up").click(function() {
// if the div is on the right, then move it to the left
if ($animatedDiv.is(':animated')) {
$animatedDiv = $(".hero-container").animate({
"right": $width
}, "slow");
}
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section class = "welcome">
<div class = "hero-container">
<h1 id = "welcome">Welcome!</h1>
<p>Welcome back</p>
<button id = "sign-in">Sign in</button>
<button id = "sign-up">Sign up</button>
</div>
<div class = "form">
<form class = "sign-in">
<h1 id = "signIn-heading">Sign In</h1>
<input type = "text" name = "email" placeholder = "Email">
<input type = "text" name = "pass" placeholder = "Password">
</form>
</div>
</section>Если div находится справа, мне нужно переместить его влево при нажатии кнопки «Зарегистрироваться», поэтому отобразится форма регистрации.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я уверен, что есть несколько способов достичь вашей цели. Одно простое решение - установить переменную после завершения анимации:
var animated_pos = "left";
var $width = $("body").width()/2;;
var $animatedDiv = $(".hero-container");
$("#sign-in").click(function(){
$(".hero-container").animate({"left": $width,done:function(){animated_pos = "left";}}, "slow");
$("#welcome").html("Sign In");
$(".form").show();
});
$("#sign-up").click(function(){
// if the div is on the right, then move it to the left
if (animated_pos == "left"){
$(".hero-container").animate({"right": $width,done:function(){animated_pos = "right";}}, "slow");
}
});
почему это имеет значение? Если div не переместился, его анимация не переместит его, и если пользователь случайно нажимает «войти», а затем нажимает «зарегистрироваться», вы все равно захотите, чтобы анимация вернулась.