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
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>
You can run this example here
π Note:
If the duration is not specified, the transition will have no effect, because the default value is0
.
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)
Instead of testing the existing a class you can simplify your code and use toggle