자바스크립트로 로그인 폼 애니메이션 구현하기

이번에는 자바스크립트를 사용하여 로그인 폼에 애니메이션 효과를 구현하는 방법에 대해 알아보겠습니다.

필요한 HTML 마크업

먼저, 로그인 폼에 대한 HTML 마크업을 작성해야 합니다. 아래는 간단한 로그인 폼의 예시입니다.

<form>
  <input type="text" placeholder="아이디">
  <input type="password" placeholder="비밀번호">
  <button type="submit">로그인</button>
</form>

CSS 스타일링

로그인 폼을 꾸며주기 위해 CSS 스타일링을 적용해야 합니다. 원하는 디자인에 맞게 CSS를 작성해주세요.

form {
  width: 300px;
  margin: 0 auto;
  padding: 20px;
  background-color: #f5f5f5;
  border: 1px solid #ddd;
  border-radius: 5px;
}

input {
  display: block;
  width: 100%;
  padding: 10px;
  margin-bottom: 10px;
  border: 1px solid #ddd;
  border-radius: 3px;
}

button {
  display: block;
  width: 100%;
  padding: 10px;
  background-color: #007bff;
  color: white;
  border: none;
  border-radius: 3px;
  cursor: pointer;
}

button:hover {
  background-color: #0056b3;
}

자바스크립트 애니메이션 구현

이제 애니메이션 효과를 구현하기 위해 자바스크립트 코드를 작성해보겠습니다.

const form = document.querySelector('form');
const inputs = document.querySelectorAll('input');

form.addEventListener('submit', function(e) {
  e.preventDefault(); // 기본 동작 막기

  inputs.forEach(function(input) {
    if (input.value === '') {
      input.classList.add('error');
    }
  });

  form.classList.add('shake');

  setTimeout(function() {
    form.classList.remove('shake');
    inputs.forEach(function(input) {
      input.classList.remove('error');
    });
  }, 1000);
});

위 코드에서는 form 요소와 input 요소들을 선택한 후, 폼이 제출될 때마다 입력값을 체크하고 비어있는 경우 에러 클래스를 추가합니다. 그리고 폼 요소에 shake 클래스를 추가하여 흔들림 효과를 적용한 후 1초 뒤에 클래스를 제거합니다.

CSS 애니메이션 효과 추가

애니메이션 효과를 보다 합니다. 이를 위해 CSS에 다음 스타일을 추가해주세요.

.shake {
  animation: shake 0.5s;
}

@keyframes shake {
  0% {
    transform: translateX(0);
  }
  20% {
    transform: translateX(-10px);
  }
  40% {
    transform: translateX(10px);
  }
  60% {
    transform: translateX(-10px);
  }
  80% {
    transform: translateX(10px);
  }
  100% {
    transform: translateX(0);
  }
}

.error {
  border-color: red;
}

결과 확인하기

이제 HTML에 CSS 및 JavaScript 파일을 연결한 후, 로그인 폼을 확인해보세요. 폼을 제출할 때 입력값이 비어있는 경우 에러 효과와 흔들림 효과가 적용될 것입니다.

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Login Form Animation</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <form>
    <input type="text" placeholder="아이디">
    <input type="password" placeholder="비밀번호">
    <button type="submit">로그인</button>
  </form>
  
  <script src="main.js"></script>
</body>
</html>

결론

위의 방법을 사용하여 자바스크립트로 로그인 폼에 애니메이션 효과를 구현할 수 있습니다. 이를 통해 사용자들에게 보다 직관적이고 시각적으로 효과적인 로그인 인터페이스를 제공할 수 있습니다.

참고 자료:

#javascript #animation