Banner rotator question

ddavis

New member
Feb 3, 2012
3
0
0
Hi guys,

I have this banner rotator code and i was wondering if it's posible to make it rotate randomly those banners still with the posibility to set a time for each.

Code:
<script type="text/javascript">
var imgs1 = new Array("http://banner1","http://banner2","http://banner3");
var lnks1 = new Array("http://www.link1","http://link2","http://link3");
var alt1 = new Array("alt1","alt2","alt3");
var currentAd1 = 0;
var imgCt1 = 3;
function cycle1() {
  if (currentAd1 == imgCt1) {
    currentAd1 = 0;
  }
var banner1 = document.getElementById('adBanner1');
var link1 = document.getElementById('adLink1');
  banner1.src=imgs1[currentAd1]
  banner1.alt=alt1[currentAd1]
  document.getElementById('adLink1').href=lnks1[currentAd1]
  currentAd1++;
}
  window.setInterval("cycle1()",5000);
</script>
<a href=""http://www.link1"" id="adLink1" target="_blank">
<img src="http://banner1" id="adBanner1" border="0" width="468" height="60"></a>
I'd really like to work this way! :)

Thanks!
 


The code you have is using a counter to go up and down.

So instead of having currentAd1 go up you want to assign it "randomly".

Something like this would work:

X = number of banners, you can use imgCt1 or generate it on the fly with this: imgs1
.length

Math.floor(Math.random() * X) + 1

Fuck it here you go took me 5 min.

Code:
<script type="text/javascript">
var imgs1 = new Array("http://banner1","http://banner2","http://banner3");
var lnks1 = new Array("http://www.link1","http://link2","http://link3");
var alt1 = new Array("alt1","alt2","alt3");
var currentAd1 = 0;
var imgCt1 = 3;
var bannerCount1 = imgs1.length;

function random1() {
    currentAd1 = Math.floor(Math.random() * bannerCount1) + 1;
    var banner1 = document.getElementById('adBanner1');
    var link1 = document.getElementById('adLink1');
    banner1.src=imgs1[currentAd1];
    banner1.alt=alt1[currentAd1];
    document.getElementById('adLink1').href=lnks1[currentAd1];
}

function cycle1() {
    if (currentAd1 == imgCt1) currentAd1 = 0;
    var banner1 = document.getElementById('adBanner1');
    var link1 = document.getElementById('adLink1');
    banner1.src=imgs1[currentAd1]
    banner1.alt=alt1[currentAd1]
    document.getElementById('adLink1').href=lnks1[currentAd1]
    currentAd1++;
}

window.setInterval("random1()",5000);
</script>
<a href=""http://www.link1"" id="adLink1" target="_blank">
   <img src="http://banner1" id="adBanner1" border="0" width="468" height="60">
</a>
 
Last edited:
Almost working ok :).

It is an error from time to time. In that period of time no banner and no link is appearing but an "undifined" error message. I guess this is happening because banner1 it is appearing only one time and no longer after.
I think that error is exactly when banner1 should appear again. All other banner are repeated, but banner1 is appearing once at the beggining and after that never again.

What could be causing that?
 
Yeah array starts at 0 not 1. Attached new code. Try it out :)

Code:
<script type="text/javascript">
var imgs1 = new Array("http://banner1", "http://banner2", "http://banner3");
var lnks1 = new Array("http://www.link1", "http://link2", "http://link3");
var alt1 = new Array("alt1", "alt2", "alt3");
var bannerCount1 = imgs1.length;

random1 = function() [COLOR=#88FF88][B]{[/B][/COLOR]
    var currentAd1 = Math.floor(Math.random() * bannerCount1);
    var banner1 = document.getElementById('adBanner1');
    var link1 = document.getElementById('adLink1');
    banner1.src = imgs1[currentAd1];
    banner1.alt = alt1[currentAd1];
    document.getElementById('adLink1').href = lnks1[currentAd1];
[COLOR=#88FF88][B]}[/B][/COLOR]

window.setInterval("random1()", 5000);
</script>
<a href=""http://www.link1"" id="adLink1" target="_blank">
   <img src="http://banner1" id="adBanner1" border="0" width="468" height="60">
</a>

http://jsfiddle.net/hZEaQ/5/
 
Last edited: