DEV Community

Cover image for CSS - animation with transition property example
Dirask-JavaScript
Dirask-JavaScript

Posted on • Edited on • Originally published at dirask.com

CSS - animation with transition property example

Hello there! 👋😊

In this article, I would like to show you how to use one of the coolest style property in CSS - transition. 😎⏭

Before we start, I would highly recommend you to check out the runnable example for the solution on our website:
CSS - animation with transition property example

Final effect:
image

Below example presents three CSS styles:

  • .normal which is the default style of our div element,
  • .transformed which is transformed style of our div element,
  • .button which is style of our button element.

The styles of our div have transition value set to '1s'. It means our component will change it's property values smoothly, over a given duration (over 1s). Additional transform parameter describes moving of an element. In our case transform rotates the element during 2s.

Runnable example:

<!doctype html>
<html>
  <head>
    <style>
      .normal {
        margin: 50px;
        padding: 20px;
        border-radius: 10px;
        width: 100px;
        height: 100px;
        background: #06F2FF;
        box-shadow: 5px 5px 5px #04bd57;
        transition: 1s,  transform 2s
      }

      .transformed {
        margin: 50px;
        padding: 20px;
        border-radius: 10px;
        width: 150px;
        height: 150px;
        background: #06FF76;
        box-shadow: 5px 5px 5px #3085d6;
        transition: 1s, transform 2s;
        transform: rotate(180deg)
      }

      .button {
        padding: 2px;
        border: 2px solid white;
        background: black;
        box-shadow: 5px 5px 5px grey;
        text-shadow: 1px 1px 1px black;
        font-weight: 900;
        color: white;
        border-radius: 10px;
      }
    </style>
    <script>
      function myFunction() {
        var element = document.getElementById("my-div");
        if(element.classList[0] == "normal"){
          element.classList.remove("normal");
          element.classList.add("transformed");
        }
        else if(element.classList[0] == "transformed"){
          element.classList.remove("transformed");
          element.classList.add("normal");
        }
      }
    </script>
  </head>
  <body>
    <div style="height: 300px">
      <div id="my-div" class="normal">
        <button class="button" onclick="myFunction()">Click me</button>
      </div>
    </div>
  </body>
</html>
Enter fullscreen mode Exit fullscreen mode

You can run this example here

📝 Note:
If the duration is not specified, the transition will have no effect, because the default value is 0.

If you found this solution useful and would like to receive more content like this leave a comment or reaction 💗🦄💾.
Thanks for your time and see you in the upcoming posts! 😊


Write to us! ✉

If you have any problem to solve or questions that no one can answer related to a React or JavaScript topic, or you're looking for a mentoring write to us on dirask.com -> Questions

You can also join our facebook group where we share coding tips and tricks with others! 🔥

Top comments (1)

Collapse
 
afif profile image
Temani Afif • Edited

Instead of testing the existing a class you can simplify your code and use toggle

 function myFunction() {
        var element = document.getElementById("my-div");
          element.classList.toggle("normal");
          element.classList.toggle("transformed");
      }
}
Enter fullscreen mode Exit fullscreen mode