Avatar billede steen_hansen Forsker
07. februar 2004 - 12:02 Der er 11 kommentarer og
1 løsning

Hvordan laves en retfærdig bannerrotation?

Jeg skal have lavet et script:

Lad os sige jeg har 18 bannere.

Alle bannere skal vises én gang i en cyklus, dvs. der bliver 18 bannerskift.

I næste cyklus vises alle bannere i en anden rækkefølge, og de vises stadig kun én gang.

På den måde imødegås kundernes behov for at få en chance for at blive eksponeret lige mange gange, istedet for, at man starter med banner 1, banner 2, banner 3 etc. Ligger éns banner så nr. 18, er det ikke sikkert, at brugeren nogensinde når frem til det.

Alle bannere vises én gang med et interval på f.eks. 8000
I næste cyklus vises alle bannere i en anden rækkefølge.

Jeg sætter gerne point op.
Avatar billede grunken Nybegynder
08. februar 2004 - 03:53 #1
Skulle lige lege med det over nat-kaffen, her er min løsning :

<script language="JavaScript" type="text/javascript">

var tid = 8; //antal sekunder mellem skift af banner

var banners = new Array();
var bannerl = new Array();

//tilføj banner og links
  banners[0] = "banner1.gif";
  bannerl[0] = "www.eksperten.dk";

  banners[1] = "banner2.gif"
  bannerl[1] = "www.eksperten.dk"
 
  banners[2] = "banner3.gif"
  bannerl[2] = "www.eksperten.dk"

  banners[3] = "banner4.gif"
  bannerl[3] = "www.eksperten.dk"

  banners[4] = "banner5.gif"
  bannerl[4] = "www.eksperten.dk"

  banners[5] = "banner6.gif"
  bannerl[5] = "www.eksperten.dk"

  banners[6] = "banner7.gif"
  bannerl[6] = "www.eksperten.dk"

  banners[7] = "banner8.gif"
  bannerl[7] = "www.eksperten.dk"

  banners[8] = "banner9.gif"
  bannerl[8] = "www.eksperten.dk"

  banners[9] = "banner10.gif"
  bannerl[9] = "www.eksperten.dk"

  banners[10] = "banner11.gif"
  bannerl[10] = "www.eksperten.dk"

  //osv


//Sjove funktioner
var a=new Array(banners.length),timer;
for (i=0;i<a.length;i++){
a[i]=i;
}

function initbanner() {
b=a,i=0,t=0,s=0;
  for (i = 0 ; i < b.length ; i++ ) {
  t = Math.floor(Math.random() * b.length);
  s = b[i];
  b[i] = b[t] ;
  b[t] = s;
  }
return b
}


function visbanner(arr,num){
if(!num)num=0;
  document.getElementById("blink").href = "http://"+bannerl[a[num]];
  document.getElementById("bimg").src = banners[a[num]];
  if(num!=a.length-1)
  timer = setTimeout("visbanner("+arr+","+(++num)+")",1000*tid);
  else
  timer = setTimeout("visbanner(initbanner())",1000*tid);
}
</script>

<body onload="visbanner(initbanner())">
<a href="" id="blink" target="_blank"><img id="bimg"/></a>
<div id="art"></div>
</body>


-Slut

Den blander, kører et gennemløb, og blander igen etc.

Det var vist det du gerne vil have :o)
Avatar billede grunken Nybegynder
08. februar 2004 - 04:20 #2
-og så lige med de sidste rettelser :o)

<script language="JavaScript" type="text/javascript">

var tid = 2; //antal sekunder mellem skift af banner

var banners = new Array();
var bannerl = new Array();

//tilføj banner og links
  banners[0] = "banner1.gif";
  bannerl[0] = "www.eksperten.dk";

  banners[1] = "banner2.gif"
  bannerl[1] = "www.eksperten.dk"
 
  banners[2] = "banner3.gif"
  bannerl[2] = "www.eksperten.dk"

  banners[3] = "banner4.gif"
  bannerl[3] = "www.eksperten.dk"

  banners[4] = "banner5.gif"
  bannerl[4] = "www.eksperten.dk"

  banners[5] = "banner6.gif"
  bannerl[5] = "www.eksperten.dk"

  banners[6] = "banner7.gif"
  bannerl[6] = "www.eksperten.dk"

  banners[7] = "banner8.gif"
  bannerl[7] = "www.eksperten.dk"

  banners[8] = "banner9.gif"
  bannerl[8] = "www.eksperten.dk"

  banners[9] = "banner10.gif"
  bannerl[9] = "www.eksperten.dk"

  banners[10] = "banner11.gif"
  bannerl[10] = "www.eksperten.dk"

  //osv


//Sjove funktioner
var a=new Array(banners.length),timer;
for (i=0;i<a.length;i++){
a[i]=i;
}

function initbanner() {
i=0,t=0,s=0;
  for (i = 0 ; i < a.length ; i++ ) {
  t = Math.floor(Math.random() * a.length);
  s = a[i];
  a[i] = a[t] ;
  a[t] = s;
  }
}

function visbanner(num){
if(!num){
  num=0;
  initbanner();
}
document.getElementById("blink").href = "http://"+bannerl[a[num]];
document.getElementById("bimg").src = banners[a[num]];
  if(num!=a.length-1)
  timer = setTimeout("visbanner("+(++num)+")",1000*tid);
  else
  timer = setTimeout("visbanner()",1000*tid);
}
</script>

<body onload="visbanner()">
<a href="" id="blink" target="_blank"><img id="bimg"/></a>
</body>
Avatar billede steen_hansen Forsker
08. februar 2004 - 11:24 #3
Hej grunken!

Dette script vil vise alle bannere én gang, og derefter vise dem igen i en anden rækkefølge?
Avatar billede steen_hansen Forsker
08. februar 2004 - 11:52 #4
Nu har jeg forsøgt med 4 stk., men scannet bliver slet ikke vist? :o(

  banners[0] = "/images/banner/bpBanner468.gif";
  bannerl[0] = "www.redbarnet.dk/DKPages/FrameSets/MainFrame.dna?pBar=12";

  banners[1] = "/images/banner/ExchangeServer2003.gif"
  bannerl[1] = "www.scannet.dk/"

  banners[2] = "/images/banner/q8_banner.gif"
  bannerl[2] = "www.q8.dk/"

  banners[1] = "/images/banner/468x60_familieferie1_loop_hl.gif"
  bannerl[1] = "www.familieferieiostrig.dk/"

Men bortset fra den mindre detalje, så fungerer det vist fint :o)
Avatar billede steen_hansen Forsker
08. februar 2004 - 11:54 #5
UNDSKYLD, havde glemt at ændre tallet!

Kan du ikke lægge et svar, det var fedt! :o)
Avatar billede steen_hansen Forsker
08. februar 2004 - 12:01 #6
Scriptet håndterer vel også jpg?

  banners[18] = "/images/banner/myfirm.jpg"
  bannerl[18] = "www.myfirm.dk/"
Avatar billede grunken Nybegynder
08. februar 2004 - 13:34 #7
Glad for du fik det til at dú, eneste du skal huske på hele tiden er at lave "banners" og "bannerl" arrayet som i mit eksempel :-)

Og scriptet kan håndtere alle de billedetyper som en browser nu engang kan håndtere :-) (gif,bmp,jpg,jpe o.s.v)

Så det er ligetil

smider et svar :o)
Avatar billede steen_hansen Forsker
08. februar 2004 - 14:48 #8
Takker mange gange, grunken! Det er fornemt! :o)
Avatar billede mclemens Nybegynder
02. april 2006 - 18:11 #9
og en magen til (næsten)
http://www.eksperten.dk/spm/692890
Avatar billede mclemens Nybegynder
02. april 2006 - 18:12 #10
hov forkert tråd - sorry
Avatar billede steen_hansen Forsker
02. april 2006 - 18:14 #11
:oD

Din løsning mht. fold ud/sammen-menuen virker forøvrigt perfekt, mclemmens. Tak for hjælpen - hvis jeg ikke fik sagt det :o)
Avatar billede mclemens Nybegynder
02. april 2006 - 18:22 #12
det var så lidt :)
rart det virkede :)
- så fik jeg ikke stres for ingenting :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Netcompany A/S

Network Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Unified Communications specialist til IT-Operations i Cyberdivisionen