Programming in HTML with JavaScript and CSS3.
Animating objects by applying CSS transitions
Transition property
Transitions provide a mechanism to alter the style of an object such that the change occurs in a visible gradual fashion.
You have the ability to control which style property gets altered and how long it takes to complete its transition from one style to the other.
,Transition allows you to specify a comma-separated list of CSS properties and a length of time for the transition of the specified property to take place.
The following table outlines the transition's properties:
Transition Property | Description |
transition-property | Specifies the property to which a transition will be applied |
transition-duration | Specifies how much time the transition should take from start to finish |
transition-delay | Specifies how long to wait from the time the property is changed before starting the transition |
The code below demonstrates the transition property:
<head>
<style type="text/css">
div {
width: 100px;
height: 100px;
background-color: gray;
margin-left: 250px;
margin-top: 50px;
margin-bottom: 50px;
transition: background-color 1s, margin-left 2s;
}
div:hover {
margin-left: 350px;
background-color: white;
}
</style>
</head>
<body>
<h2>transition: background-color 1s, margin-left 1s;</h2>
<div>
DIV1 TRANSITION EFFECTS
</div>
</body>
Transition Timing
Another property that exists to control the speed of the transitions is transition-timing-function.
With the transition-timing-function property, you can specify some different effects to the timing of the transition.
The following Table outlines the possible values for the transition-timing-function
Value | Description |
ease | The default value that applies the effect in such a way that it starts slow, speeds up, then ends slow. |
linear | Makes the transition constant from start to finish |
ease-in | Causes the transition to have a slow start. |
ease-out | Causes the transition to have a slow finish. |
ease-in-out | Causes the transition to have a slow start and a slow finish. |
cubic-bezier | Allows you to define values. This takes four parameters that are values from 0 and 1. |
The code below demonstrates the transition-timing-function:
<head>
<style type="text/css">
#div2 {
width: 200px;
height: 200px;
color:white;
font-size: x-large;
background-color: grey;
margin-left: 250px;
margin-top:50px;
margin-bottom: 50px;
/*transform: rotate3d(1,1,1, 30deg);*/
transition: transform 2s ease-in-out;
}
#div2:hover {
/*transform: rotateX(30deg) rotateY(30deg) rotateZ(30deg);
transform: rotate3d(1,1,1, 30deg);*/
transform: scale3d(.3, .3, 1.2);
}
</style>
</head>
<body>
<h2>transform: scale3d(.3, .3, 1.2);</h2>
<div id="div2">
DIV2 TRANSITION EFFECTS
</div>
</body>
Ads Right