Auto-looping banners using JavaScript

June 26, 2009 by satz  
Filed under JavaScript, Scripts

Learn how to create auto looping banners using JavaScript! In this article, we learn how to rotate banners in a loop with a specified delay. The script will count the number of banners present in the specified location and set the automatic loop of all the banners.

Understanding the Source code:

There are 2 parts in this tutorial. The first part explains how to arrange the banners in a sequence and in the second one describes how the JavaScript function works.

Part1: The banners:

Each banner has to be placed inside individual “span” tags. All the banner collectively will be placed inside a single div.

By default, all the span tags [banners] will have the default “display” property as “none”. See the style sheet code for details:

div#partentDivID span{display:none;}

NOTE: In this “partentDivID” is the div tag’s Id. It is in side this div tag all the banners contain, in the order in which the banners needs to be rotated/looped. All the span tags [contains individual banner] will be in “display:none” status, initially.

Following is the HTML code in the body tag:

<div id=”partentDivID”>
<span>banner1</span>
<span>banner2</span>
<span>banner3</span>
<span>banner4</span>
<span>banner5</span>
<span>banner6</span>
<span>banner7</span>
</div>

To add more banners in the loop, just add a new span tag along with the existing span tags and place the banner inside it.

Following is the Event code for the looping function:

<script type=”text/javascript”>
rotateBanner(‘partentDivID’);
</script>

Part2: The JavaScript Code:

In the second part of this article, let’s analyze the JavaScript function flow.

Section 1:

var bannerLoopInstance = 0;
function rotateBanner(BannerHolder){
setSpanID(BannerHolder);
doRotation(BannerHolder);
}

NOTES: “rotateBanner” funcntion is defined. At first, the function “setSpanID” is invoked and then the function “doRotation” is invoked.

Section2:

function setSpanID(BannerHolderForId){
var divInConcern = document.getElementById(BannerHolderForId);
var spansIndivInConcern =divInConcern.getElementsByTagName(“span”);
var numberOfActiveSpans = spansIndivInConcern.length;
for(L=0;L<numberOfActiveSpans; L++) {
spansIndivInConcern[L].setAttribute(“id”,BannerHolderForId+L);
}
}

NOTES: The above function (setSpanID), counts the total number of span tags (banners) inside the specified div tag (partentDivID) and then sets a unique “id” value to each one of them.

Section3:

function doRotation(bannerHolderDiv){
var HolderdivInConcern = document.getElementById(bannerHolderDiv);
var spansIndivInConcernBanner =HolderdivInConcern.getElementsByTagName(“span”);
numberOfActivebanner = spansIndivInConcernBanner.length;
bannerHolderDiv4loop =bannerHolderDiv;
document.getElementById(bannerHolderDiv4loop+0).style.display =”block”;
setTimeout(“rotatePlayBack(numberOfActivebanner,bannerHolderDiv4loop)”,2000);?
}

Notes: The above code, starts the initial looping display of banners and then after the specified time delay, a new function is invoked (rotatePlayBack).

Section4:

function rotatePlayBack(maxNumberOfBannersloopBack,bannerHolderDiv4loopback){
maxLoopVal = maxNumberOfBannersloopBack;
currElementObj = bannerHolderDiv4loopback;
rotatePlay(maxLoopVal,currElementObj);
}

Notes: the above function sends a loop back routing to another function for mutual looping (rotatePlay), with no delay.

Section5:

function rotatePlay(maxNumberOfBanners,bannerHolderDiv4loop){
maxLoopNum = maxNumberOfBanners;
bannerNameHolder = bannerHolderDiv4loop;
document.getElementById(currElementObj+bannerLoopInstance).style.display =”none”;
bannerLoopInstance++;
if(bannerLoopInstance<maxNumberOfBanners){
document.getElementById(bannerHolderDiv4loop+bannerLoopInstance).style.display =”block”;
setTimeout(“rotatePlayBack(maxLoopNum,bannerNameHolder)”,2000)
}
else {
bannerLoopInstance=0;
document.getElementById(bannerHolderDiv4loop+0).style.display =”block”;
setTimeout(“rotatePlay(maxLoopNum,bannerNameHolder);”,2000); ?
} ?
}

NOTES: the above function loops through all the banners in the specified time-delay and displays them in the a loop.

Click here to download the source code:

  • Leave a Comment

    Leave your sincere comments and feed backs below. It helps us to improve the quality and encourages us to do more.

Speak Your Mind

Tell us what you're thinking...
All the support requests shall be posted at forum.tutorials2learn.com