Avatar billede Slettet bruger
21. juli 2004 - 18:28 Der er 21 kommentarer og
1 løsning

Billed-rotations-system med bladre-funktion

Hey

Jeg ønsker mig et billed-rotations-system med bladre-funktion.

Som udgangspunkt har jeg 10 .jpg billeder af størrelsen 250x250. Når siden åbnes vises et bestemt angivet billede. Ved siden af billedet er 2 mouseover-knapper – en frem og en tilbage, med dem skal man så kunne bladre mellem de 10 angivet billeder.

Jeg ønsker ikke noget med tumpnails-pic. el.lign.  Bare en simpel løsning der opfylder overstående.
Funktionen kan fx bruges til en manuel grafisk ”step by step” præsentation, hvor billederne måske er angivet ved nummer 1-10.

Spørgsmålet er så hvordan det skal laves ?

Er der nogen som har et script eller en ide ?
Avatar billede roenving Novice
21. juli 2004 - 19:14 #1
Sådan ?-)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<title>Fade slides</title>

<meta name="Generator" content="Stone's WebWriter 4">
<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/521949">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
html,body{height:100%;margin:0px;border:0px;padding:0px;font-family:tahoma,verdana,arial,sans-serif;font-size:small;}
#slidecontainer{float:left;height:250px;width:250px;}
</style>

<script type="text/javascript" language="JavaScript1.2">
var slideshow_width='250px'; //SET IMAGE WIDTH
var slideshow_height='250px'; //SET IMAGE HEIGHT
var imagepath = "../";

var fimages = new Array();

fimages[fimages.length] = "billede1.jpg";
fimages[fimages.length] = "billede2.jpg";
fimages[fimages.length] = "billede3.jpg";
fimages[fimages.length] = "billede4.jpg";
fimages[fimages.length] = "billede5.jpg";
fimages[fimages.length] = "billede6.jpg";
fimages[fimages.length] = "billede7.jpg";
fimages[fimages.length] = "billede8.jpg";
fimages[fimages.length] = "billede9.jpg";
fimages[fimages.length] = "billede10.jpg";

var preloadedimages=new Array();
  for (p=0;fimages.length>p;p++){
    preloadedimages[p] = new Image();
    preloadedimages[p].src = imagepath + fimages[p];
  }

var slidelength = preloadedimages.length,curcanvas,curimageindex,actZ=100;

var OpC = new Array();
var ie = (document.all)?true:false;
var moz = (navigator.userAgent.indexOf("Gecko")>-1)
function startOpChange(elm,end,tim){
  if(!ie&&!moz)return;
  var idx = OpC.length;
    for(var i=0;idx>i;i++){
        if(OpC[i][0]==elm){
          clearInterval(OpC[i][4]);
            idx = i;
            break;
        }
        OpC[idx] = new Array();
    }
  if(idx==0)OpC[idx] = new Array();
   
    if(ie)actOp=elm.filters.alpha.opacity;
    else actOp=Math.round((elm.style.MozOpacity*100));
  if (actOp!=end){
    OpC[idx][0]=elm;
    OpC[idx][1]=actOp;
    OpC[idx][2]=end;
    OpC[idx][3]=(end>actOp)?1:-1;
    var delayTime = Math.floor((tim*1000)/Math.abs((actOp-end)));
    OpC[idx][4]=setInterval("opChange("+idx+")",delayTime);
  }
}
function opChange(idx){
  OpC[idx][1]+=OpC[idx][3];
  if (ie)OpC[idx][0].filters.alpha.opacity=OpC[idx][1];
  else OpC[idx][0].style.MozOpacity=Math.min(0.9999,OpC[idx][1]/100);
  if (OpC[idx][1]==OpC[idx][2]){
    clearInterval(OpC[idx][4]);
    return;
  }
}

function initSlide(){
  var c = document.getElementById('slidecontainer');
  with(c.style){
    position='relative';
    overflow='hidden';
    width=slideshow_width;
    height=slideshow_height;
  }
  if (ie||moz){
    for(i=0;2>i;i++){
      var im = document.createElement('IMG');
      c.appendChild(im);
      with(im.style){
        position='absolute';
        top=left='0px';
        width=slideshow_width;
        height=slideshow_height;
        filter='alpha(opacity=5)';
        MozOpacity='0.05';
        zIndex = ++actZ;
      }
      im.id = 'canvas'+i;
      im.src = preloadedimages[i].src;
      im.alt = fimages[i];
      if(i==0)startOpChange(im,100,1);
    }
  }else{
    var im = document.createElement('IMG');
    c.appendChild(im);
    with(im.style){
      position='absolute';
      top=left='0px';
      width=slideshow_width;
      height=slideshow_height;
    }
    im.id = "canvas"
    im.src = preloadedimages[0].src;
    im.alt = fimages[0];
    im.style.zIndex = 0;
  }
  curcanvas="canvas1";
  curimageindex=0;
}

function nextSlide(dir){
  startOpChange(document.getElementById(curcanvas),5,1);
  curcanvas = 'canvas' + ((curcanvas=='canvas0')?1:0);
  var im = document.getElementById(curcanvas);
  curimageindex = (curimageindex+dir)%slidelength;
  curimageindex = (curimageindex==-1)?slidelength-1:curimageindex;
  im.src = preloadedimages[curimageindex].src;
  im.alt = fimages[curimageindex];
  im.style.zIndex += 1;
  startOpChange(im,100,1); 
}

function rotateimage(dir){
  var im = document.getElementById('canvas');
  curimageindex = (curimageindex+dir)%slidelength;
  im.src = preloadedimages[curimageindex].src;
  im.alt = fimages[curimageindex];
}

function next(dir){
  if (ie||moz)
    nextSlide(dir);
  else
    rotateimage(dir);
}
window.onload = initSlide;
</script>
</head>

<body>
  <div id="slidecontainer"></div>
  <div id="">
    <br><br><br><br><br><br>
    <button onclick="next(-1)">^</button><br>
    <button onclick="next(1)">v</button>
  </div>
</body>
</html>
Avatar billede Slettet bruger
21. juli 2004 - 19:48 #2
Hvad gør jeg ikke rigtigt - eller mangler at udfylde ??

http://www.baseiq.web.surftown.dk/
Avatar billede Slettet bruger
21. juli 2004 - 19:56 #3
Aha fandt ud af det :-)

Det er perfekt !! Smid et svar, roenving!
Avatar billede Slettet bruger
21. juli 2004 - 20:01 #4
Nøøøj det er en sej løsning. Meget bedre end jeg havde forestillet mig... - Se specielt fedt ud med fade-effekten...

Jeg takker rigtig mange gange !!!

PS. Billederne er kun til test ;-) Nu skal jeg så ha' det bygget ind på mit site, og ha' tilføjet de rigtige billeder og knapper.
Avatar billede roenving Novice
21. juli 2004 - 20:04 #5
Velbekomme '-)

-- jeg havde den rigtige grundskabelon liggende med fade-effekten, og jeg tænkte, at den kunne du måske godt bruge ...

-- og fade virker i IE og Gecko-browsere (Mozilla, Netscape m.fl. !-)
Avatar billede Slettet bruger
21. juli 2004 - 20:15 #6
Pre-loader den billederne ?? Eller indlæses de først ved "next" aktivering ?
- Tænker på at det kommer til at fylde en hel del på mit iforvejen "grafik-tunge" site...
Avatar billede roenving Novice
21. juli 2004 - 21:54 #7
Den preloader, men load går jo bare i gang ...

-- og du kan jo lægge scriptet nederst på siden !-)
Avatar billede roenving Novice
21. juli 2004 - 21:54 #8
-- og også tak for point ;~}
Avatar billede Slettet bruger
21. juli 2004 - 23:09 #9
Velbekomme de er fuldt fortjent! :-)

Jeg kan da ikke lægge scriptet nederst på siden, når det skal sidde i head'en ?
Avatar billede roenving Novice
21. juli 2004 - 23:19 #10
Medmindre du kører xhtml er det aldeles ligegyldigt hvor på siden du lægger scriptet !-)
Avatar billede Slettet bruger
21. juli 2004 - 23:49 #11
Nå okay, det var jeg ikke klar over - troede det skulle være i head.

Det eneste der er lidt ærgeligt, er at jeg ikke kan få det til at virke sammen med olebole's "shadeHolder-script". Jeg har ellers disabled window.onload og flyttet onload = initSlide; ned i body. Men det går galt når jeg sætter class="shadeTBL" ind i div'en.
Medmindre du har en ide til en nem løsning, så må jeg bare lave en tabel background-img som skygge effekt - det går også nok.... :-)
Avatar billede roenving Novice
22. juli 2004 - 00:02 #12
Jamen oles shader henter såvidt jeg husker jo også elementer med document.getElementsByTagName("TABLE") -- og så er div'en jo ikke med !-)
Avatar billede Slettet bruger
22. juli 2004 - 00:08 #13
Ja, det gør den! Kan jeg mon ændre noget der, som adskiller de to scripts. Eller er der andre muligheder mon ??
Avatar billede roenving Novice
22. juli 2004 - 00:13 #14
Ændr "TABLE" til "*" !-)
Avatar billede Slettet bruger
22. juli 2004 - 00:42 #15
Problemet er at den ikke load'er første billede ordentligt - se selv: http://www.baseiq.web.surftown.dk/
(Husk at opdatere siden!)
Avatar billede roenving Novice
22. juli 2004 - 02:35 #16
Jeg kan jo ikke finde den linje 177, hvor fejlen er ...
Avatar billede Slettet bruger
22. juli 2004 - 02:46 #17
Undskyld - med ikke forstået! Det hele skulle da være der ?? Hvad står der i linien da ??
Avatar billede roenving Novice
22. juli 2004 - 02:56 #18
Det må være på grund af den fejl med at billede 1 ikke loader ...

For det er en fejl med at det ikke er initialiseret ved første load ...

-- og hvis du vil have noget ud af at bruge doctype skal du placere det som allerførste linje i dit output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
Avatar billede Slettet bruger
22. juli 2004 - 03:11 #19
Hvis du tænker på disse linier: <!-- EOF: ./personal-templates/simple/generic/functions -->
Så er det noget Surftown bruger, som jeg ikke umiddelbart kan fjerne. - Ellers er doctype skam øverst i min fil. - Men skidt nu med det....

Kan vi få billede 1. til at initialisere rigtigt ?? Husk at problemet ikke eksistere uden brug af skygger.... - Der er dog en anelse transperancy fra forgående billede når man bladre !
Avatar billede Slettet bruger
22. juli 2004 - 03:33 #20
Hmmm... når man blader skifter fil-navnet kun hver anden gang ?
Avatar billede roenving Novice
22. juli 2004 - 04:28 #21
Ja, transparencyen kan jeg forklare, for det billede som er nærmest efter står til opacity 5, hvilket dog nemt kan ændres ved at ændre et par linjer:

        filter='alpha(opacity=5)';
        MozOpacity='0.05';

-- de to 5-taller skal bare ændres til 0 !-)

-- det må blive imorgen, for så skal jeg kigge oles funktion igennem også !o]

-- jeg kan nemlig ikke forklare det ...
Avatar billede Slettet bruger
22. juli 2004 - 14:37 #22
Har ændret de to 5-taller - det hjalp en hel del, takker! :-)

Ja, prøv at kigge på det i løbet af dagen, natten, imorgen eller overmorgen.... Det haster ikke !! - Så ser vi om ikke du finder en løsning - det plejer du jo! ;-)

Så venter jeg med at gøre mere ved det, indtil du kommer med en udmelding. :-)
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
Kurser inden for grundlæggende programmering

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