jQuery defines simple methods such as fadeIn() and fadeOut() for basic visual effects. You can also use an animate() method for producing more complex custom animations.
Read Also: How to Alter HTML Document Structure using jQuery?
Every animation has a duration that specifies how long the effect should last for. You can specify this as a number of milliseconds or by using a string. The string “fast” means 200ms and the sting “slow” means 600ms. If you specify a duration string that jQuery does not recognize, you will get a default duration of 400ms.
$("#animation").fadeIn();
// It fades an element in over 400ms
$("#animation").fadeOut("fast");
// It fade outs over 200ms
$("#animation").fadeIn(5000);
//It fades an element in over 5000ms
You can also define new duration names by adding new string-to-number mappings to jQuery.fx.speeds as given below.
jQuery.fx.speeds["medium-fast"]=3000;
jQuery.fx.speeds["medium-slow"]=5000;
Here is an example to create animated visual effects using methods fadeIn() and fadeOut() in jQuery.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
jQuery.fx.speeds["medium-slow"]=3000;
jQuery.fx.speeds["very-slow"]=5000;
$(document).ready(function(){
$("#btn1").click(function(){
$("#animation1").fadeIn();
$("#animation3").fadeIn(5000);
$("#animation5").fadeIn("medium-slow");
});
$("#btn2").click(function(){
$("#animation2").fadeOut("fast");
$("#animation4").fadeOut("very-slow");
});
});
</script>
<input type=button id="btn1" value="Start FadeIn"/><br/>
<div id="animation1" style="display:none;background:pink;">It fades an element in over 400ms</div><br/>
<div id="animation3" style="display:none;background:red">It fades an element in over 5000ms</div><br/>
<div id="animation5" style="display:none;background:yellow">It fades an element in over 3000ms</div><br/>
<input type=button id="btn2" value="Start FadeOut"/><br/>
<div id="animation2" style="background:red">It fade outs over 200ms</div><br/>
<div id="animation4" style="background:pink">It fade outs over 5000ms</div>
You can also set the value of the document that was animated using a function as an argument. Here is a jQuery code that quickly fades in an element and when it is visible, display some text in it.
<script>
$(document).ready(function(){
$("#btn4").click(function(){
$("#message").fadeIn("fast", function() {$("#message").text("Hello this is animation");});
});});
</script>
<input type=button id="btn4" value="Start Animation"/><br/>
<div id="message" style="color:red"></div>
Passing a callback function to an “effect” method allows you to perform actions at the end of an effect. However, that is is not necessary when you simply want to perform multiple effects in sequence.
Read Also: How to Get and Set Element Attributes using jQuery
If you call an animation method on an element that is already being animated, the new animation does not begin right away but is deferred until the current animation ends. For example, you can make an element blink before fading in permanently.
<script>
$(document).ready(function(){
$("#blinker").mouseover(function(){
$("#blinker").fadeIn(100).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn();});
});
</script>
<div id="blinker" style="color:red"><h3>It blinks before fading in permanently</h3></div>
jQuery’s effect methods are declared to accept optional duration and callback arguments. It is also possible to invoke these methods with an object whose properties specify animation options.
<script>
$(document).ready(function(){
$("#btn3").click(function(){
$("#effect").fadeIn({
duration: "slow",
complete: function(){$(this).text("Animation was completed");}
});});});
</script>
<input type=button id="btn3" value="Start Animation"/>
<div id="effect" style="background:yellow">This is sample animation effect</div>
Read Next: How to Create Show/Hide Effect in Image SlideShow Using JQuery