Направьте пожалуйста или подскажите. В тестовом проекте было обучение основам JS на примере формы входа. При клике на пункт меню "Вход" выезжала форма вида - "логин", "пароль" и кнопка "войти". Сначала проверяем есть ли данные о логине, если есть - то заполняем поле "логин" и фокусируемся на поле "пароль". Если пользователь нажал кнопку "войти", но в полях пусто или ошибка - форма должна немного потрястись. Она трясется только один раз. Нашла вариант с JQuery, но хочется понять JS. Предполагаю, что нужен какой-то цикл, чтобы этот эффект был каждый раз после нажатия на кнопку при неверно заполненных полях. НО не могу понять как его написать правильно...Подскажите пожалуйста, какие могут быть тут "варианты ответа". Вот код:
<div class="account-menu">
<a href="#" class="account-menu-enter">Вход </a>
</div>
.form-popup-show {
display: block;
animation: login-open 0.7s;
-webkit-animation: login-open 0.7s;
}
.form-popup-close {
color: #000;
position: absolute;
margin: -35px 0 0 180px;
text-align: center;
text-decoration: none;
width: 360px;
}
.form-popup-error {
animation: login-error 0.2s;
-webkit-animation: login-error 0.2s;
}
var link = document.querySelector('.account-menu-enter');
var popup = document.querySelector('.form-popup');
var close = popup.querySelector('.form-popup-close');
var form = popup.querySelector('form');
var login = form.querySelector('.field-popup-login');
var password = form.querySelector('.field-popup-password');
var storage = localStorage.getItem("login");
link.addEventListener('click', function(event) {
event.preventDefault();
popup.classList.add('form-popup-show');
if (storage) {
login.value = storage;
password.focus;
}
else {
login.focus();
}
}, false );
link.addEventListener("click", function(event) {
if (popup.classList.contains("form-popup-error")) {
popup.classList.remove("form-popup-error");
}
}, false);
close.addEventListener('click', function(event) {
event.preventDefault();
popup.classList.remove('form-popup-show');
}, false);
form.addEventListener("submit", function(event) {
if (!login.value || !password.value) {
event.preventDefault();
popup.classList.add("form-popup-error")
}
else {
localStorage.setItem("login", login.value);
}
}, false);