How to Create a Simple Image Slider in JavaScript.




How to Create a Simple Image Slider in JavaScript.

Hi Friends,

In this Article i am going to explain about creating a simple slider in JavaScript . So let us start step by Step tutorial on How to Create a simple image slider in JavaScript .

Before starting this Example you should know the following topics.

1. What is JavaScript Arrays & How to Populate arrays in JavaScript .
2. What is meant by Set Interval and Clear Interval in JavaScript
3. How to change image source dynamically with JavaScript .

If you are not clear about the above mentioned topics, I strongly suggest you to please go through the above mentioned topics first. If you know above topics, let is start the example.

Step 1 :

Create A simple HTML Template as Follows With a Image element with id "myImg" in it .
<![CDATA[
<!DOCTYPE html>
<html>
<head>
                <title></title>
</head>
<body>
                <img src="" id ="myImg">
</body>
</html>
]]>
Step 2 :

Now Add a simple array which contains list of objects with image name as follows

<script type="text/JavaScript">

Var images=[{name:"images/1.jpg"},{name:"images/2.jpg"},{name:"images/3.jpg"},{name:"images/4.jpg"},
{name:"images/5.jpg"},{name:"images/6.jpg"}]
var imgNo=0;
</script>

Step 3 :

Now Let us create a simple function called "startSlide" as follows .

function startSlide(){
                                                document.getElementById("myImg").setAttribute("src",images[imgNo].name);
                                                if(imgNo==5){
                                                                imgNo=0
                                                }
                                                else{
                                                                imgNo++;
                                                }
                                }
 When we invoke the function "startSlide" , it will access the image element with id "myImg" .At this point of time this this element is not having any value for the "src" Attribute . Now we will assign src attribute value as "images[imgNo].name". Sice we have assigned a value for imgNo as 0 , it will assign the first objects name as image src .

 In Result Now the first image will be appear . After that it will come to the if condition to check the image no. If the image no is 5 , it means we have reached to the last image . since we dont have any images after the we will assign imgNo=0. So it will reach to the first image once again .

 Step 4 : Now we have to create a function which will invoke the above startSlide in 1 sec interval . (You can change the interval as per your wish ). So the onload function will look like this .

                window.onload=slide();
                                function slide(){
                                                autoSlide=setInterval(startSlide,1000)
                }

 Step 5 : Now when we run , our Image sliding application is ready and running . we need to do some more things .When we mouse over on the image , sliding has to stop and when we mouse out , sliding has to start once again . To od that we need to add the following code .

                                document.getElementById("myImg").onmouseover=function (){
                                                clearInterval(autoSlide)
                                }

                                document.getElementById("myImg").onmouseout=function (){
                                                slide()
                                }

 So Here is final Code Look Like :
  <!DOCTYPE html>  
 <html>  
 <head>  
         <title></title>  
         <style type="text/css">  
                 img#myImg {  
   width: 900px;  
   height: 600px;  
 }  
         </style>  
 </head>  
 <body>  
         <img src="" id="myImg">  
         <script type="text/javascript">  
         var autoSlide;  
                 var images=[{name:"images/1.jpg"},{name:"images/2.jpg"},{name:"images/3.jpg"},{name:"images/4.jpg"},{name:"images/5.jpg"},{name:"images/6.jpg"}]  
                 window.onload=slide();  
                 function slide(){  
                         autoSlide=setInterval(startSlide,1000)  
                 }  
                 var imgNo=0;  
                 function startSlide(){  
                         document.getElementById("myImg").setAttribute("src",images[imgNo].name);  
                         if(imgNo==5){  
                                 imgNo=0  
                         }  
                         else{  
                                 imgNo++;  
                         }  
                 }  
                 document.getElementById("myImg").onmouseover=function (){  
                         clearInterval(autoSlide)  
                 }  
                 document.getElementById("myImg").onmouseout=function (){  
                         slide()  
                 }  
         </script>  
 </body>  
 </html>  



About Author:
I have come across so many difficult situation while learning JavaScript. I thought I can share my experience in my blog http://sunlineitsolutions.com/  to the people which may be helpful  for them . 

Comments