Answers for "how to make an element in html shake using js"

0

how to make an element in html shake using js

// HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="./main.css">
    <title>3d Vector Kata</title>
</head>
<body>
    <form id="test-form">
        <input type="text" id="test-input">
        <button type="submit" id="submit-button">Submit</button>
    </form>
    <script src="./index.js"></script>
</body>
</html>

// CSS
/* Standard syntax */
@keyframes shake {
  10%, 90% {
    transform: translate3d(-1px, 0, 0);
  }

  20%, 80% {
    transform: translate3d(2px, 0, 0);
  }

  30%, 50%, 70% {
    transform: translate3d(-4px, 0, 0);
  }

  40%, 60% {
    transform: translate3d(4px, 0, 0);
  }
}

.apply-shake {
    animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both;
}


// JAVASCRIPT
const input = document.querySelector("input#test-input");
const submit = document.querySelector("button#submit-button");

submit.addEventListener("click", (e) => {
    e.preventDefault();
    if(input.value === "") {
        input.classList.add("apply-shake");
    }
});

input.addEventListener("animationend", (e) => {
    input.classList.remove("apply-shake");
});
Posted by: Guest on September-17-2021

Code answers related to "how to make an element in html shake using js"

Code answers related to "Javascript"

Browse Popular Code Answers by Language