Click here to Skip to main content
6,291,722 members and growing! (13,157 online)
Email Password   helpLost your password?
Web Development » Client side scripting » General     Intermediate

Banner.js

By Per S

An object oriented approach for displaying banners.
JavascriptWin2K, WinXP, Win2003, Dev
Posted:8 Oct 2003
Updated:14 Oct 2003
Views:46,074
Bookmarked:6 times
Announcements
Loading...
 
Search    
Advanced Search
printPrint   Broken Article?Report       add Share
  Discuss Discuss   Recommend Article Email
4 votes for this article.
Popularity: 2.06 Rating: 3.43 out of 5
1 vote, 25.0%
1

2
1 vote, 25.0%
3
2 votes, 50.0%
4

5

Introduction

I was looking for a JavaScript banner solution that allows me to run banners on my web, when I discovered the BarelyFitz JavaScript slideshow. It's the best slideshow script I've seen, and I decided to use if for my banners.

Inheritance

The easiest method to "borrow" somebody else's code, is through inheritance. Using Nicholas C. Zakas's technique makes inheritance in JavaScript a dream:

Object.prototype.extend = function (oSuper) { 
       for (sProperty in oSuper) { 
               this[sProperty] = oSuper[sProperty]; 
       } 
}

function ClassA () { 
} 

function ClassB() { 
       this.extend(new ClassA()); 
}

The Banner Class

The reason I wrote this banner class, was to be able to have two (or more) banners on one page. The banner class acts as a wrapper around the slideshow class and inherits slideshow's methods and properties.

You'll find a demo here.

Prerequisite

BarelyFitz JavaScript slideshow.js.

The code

<HEAD>
<SCRIPT type="text/javascript" src="slideshow.js"></SCRIPT>
<SCRIPT language="JavaScript1.3" type="text/javascript">
<!--//

// From "Rethinking JavaScript Objects"
// makes it easy to inherit/extend an object
Object.prototype.extend = function (oSuper) { 
       for (sProperty in oSuper) { 
               this[sProperty] = oSuper[sProperty]; 
       }
}

// Banner(), a slideshow wrapper
// syntax:
//      var oVar = new Banner("oVar",url|urlarry [,target])
//      Note: oVar must be the same as the first parameter to Banner - "oVar"
//            the third parameter - target - is optional      
//            see sample use
function Banner (id,url) { 
    //inherit methods and properties from slideshow()
    this.extend(new slideshow()); 

    //set inherited property 'name', required ref slideshow documentation
    this.name = id;

    //set target if defined
    if (arguments[2]) 
        this.target = arguments[2];
    else
        this.target = '_self';
    
    // images(), local method that adds images to the object
    this.images = function() {
        for(i=0;i<arguments.length;i++){ 
            // Create a slide
            s = new slide();
            s.src =  arguments[i];
            if (typeof(url) == 'string')
                s.link = url;
            else
                s.link = url[i];
            s.target = this.target;
            
            // inherited method, see slideshow documentation
            this.add_slide(s);
        }    
     }    
}



// create the first banner object, all images points to the same location

var firstBanner = new Banner("firstBanner","http://soderlind.no/","_blank");

 
// create the second banner object, each image points to a different location

var arrURLs = new Array(
     "http://www.codeproject.com"
    ,"http://soderlind.no/"
    ,"http://syndicated.INFO/"
);
var secondBanner = new Banner("secondBanner",arrURLs,"_blank");


// onload, init the banner objects and start them

function initBanner() {
    if (document.images) {
        //
        // firstBanner
        //
        firstBanner.images(
             "http://soderlind.no/images/soderlind468x60.gif"
            ,"http://soderlind.no/images/soderlind468x60-black.gif"
        );
        // image, timeout, update() and play() are inherited,
        // see slideshow documentation
        firstBanner.image = document.images.BANNER1;
        firstBanner.timeout = 5000;
        firstBanner.update();
        firstBanner.play();
        //
        // secondBanner
        //
        secondBanner.images(
             "http://www.codeproject.com/images/codeproject468x60.gif"
            ,"http://soderlind.no/images/soderlind468x60.gif"
            ,"http://syndicated.info/i/gfx/logo.gif"
        );
        secondBanner.image = document.images.BANNER2;
        secondBanner.timeout = 7000;
        secondBanner.update();
        secondBanner.play();
    }
}
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="initBanner();">

<!-- firstBanner.hotlink() is inherited, see "http://www.barelyfitz.com/webapps/apps/slideshow/index.php/5" target=_blank>slideshow documentation -->
<A href="javascript:void(0)" onClick="firstBanner.hotlink();return false;">
    <IMG name="BANNER1" src="http://soderlind.no/images/soderlind468x60.gif" 
    width="468" height="60" border="0">
</A>

<A href="javascript:void(0)" onClick="secondBanner.hotlink();return false;">
  <IMG name="BANNER2" 
  src="http://www.codeproject.com/images/codeproject468x60.gif"  
  width="468" height="60" border="0">
</A>
</BODY>

Have fun coding.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Per S


Member

Occupation: Web Developer
Location: Norway Norway

Other popular Client side scripting articles:

Article Top
You must Sign In to use this message board.
FAQ FAQ 
 
Noise Tolerance  Layout  Per page   
 Msgs 1 to 8 of 8 (Total in Forum: 8) (Refresh)FirstPrevNext
GeneralNightmare, not a dream Pinsussdarkoverlordofdata4:31 7 Jun '04  
GeneralAdRotator Pinmemberadrian730:17 10 Oct '03  
GeneralRe: AdRotator PinsitebuilderUwe Keim3:25 10 Oct '03  
GeneralRe: AdRotator Pinmemberadrian734:03 10 Oct '03  
GeneralRe: AdRotator PinsitebuilderUwe Keim4:11 10 Oct '03  
GeneralRe: AdRotator PinmemberJohn Kendrick11:36 18 Oct '03  
GeneralRe: AdRotator PinsussPer Søderlind16:46 18 Oct '03  
GeneralRe: AdRotator PinmemberJohn Kendrick12:05 19 Oct '03  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 14 Oct 2003
Editor: Smitha Vijayan
Copyright 2003 by Per S
Everything else Copyright © CodeProject, 1999-2009
Web17 | Advertise on the Code Project