Avatar billede cmp77 Nybegynder
25. marts 2007 - 13:38 Der er 2 kommentarer og
1 løsning

flere slideshows på samme side

Hej,

Jeg har fundet et slideshow script, som jeg desværre har lidt problemer med, da jeg har meget lidt kendskab til JS.

Scriptet som sådan virker fint, men problemet er den <DIV> box som viser nummeret på det pågældende billede... Den virker kun på det nederste billede når siden hentes, men kommer til syne på det øverste når der bladres i billederne.
Det skal måske lige nævnes at jeg bruger scriptet sammen med en php løkke, men det burde vel være underordnet, eller...?

Koden til det hele ses herunder og et eksempel på kan ses på http://8260gugers.dk/test/index.html

På forhånd mange tak!

/Claus


<script language="JavaScript">

  theimage0 = new Array();
  theimage0[0]=["img1.png", "", "1 of 3"];
  theimage0[1]=["img2.png", "", "2 of 3"];
  theimage0[2]=["img3.png", "", "3 of 3"];
  playspeed=3000;
  aa=0;

  window.onload=function(){
    preloadSlide0();
    SetSlide0(0);
  }

  function SetSlide0(num) {
    aa=num%theimage0.length;
    if(aa<0)aa=theimage0.length-1;
    document.images.imgslide0.src=theimage0[aa][0];
    document.getElementById('slidebox0').innerHTML=theimage0[aa][2];
  }

  function PlaySlide() {
    if (!window.playing) {
      PlayingSlide(aa+1);
      if(document.slideshow0.play){
    document.slideshow0.play.value="  Stop  ";
      }
    } else {
      playing=clearTimeout(playing);
      if(document.slideshow0.play){
    document.slideshow0.play.value="  Play  ";
      }
    }

    // if you have to change the image for the "playing" slide
    if(document.images.imgPlay){
      setTimeout('document.images.imgPlay.src="'+imgStop+'"',1);
      imgStop=document.images.imgPlay.src
    }
  }

  function PlayingSlide(num) {
    playing=setTimeout('PlayingSlide(aa+1);SetSlide0(aa+1);', playspeed);
  }

  function preloadSlide0() {
    for(ba=0;ba<theimage0.length;ba++) {
      theimage0[ba][0]=new Image().src=theimage0[ba][0];
    }
  }

</script>

<FORM NAME="slideshow0"> 
<TABLE>
  <TR>
    <TD COLSPAN="5"><script language="javascript">document.write('<img name="imgslide0" id="imgslide0" src="'+theimage0[0][0]+'">')</script></TD>
  </TR>
  <TR>
    <TD><A HREF="java script:SetSlide0(0);">First</A></TD>
    <TD><A HREF="java script:SetSlide0(aa-1);">Prev</A></TD>
    <TD><DIV ID="slidebox0"></DIV></TD>
    <TD><A HREF="java script:SetSlide0(aa+1);">Next</A></TD>
    <TD><A HREF="java script:SetSlide0(theimage0.length-1);">Last</A></TD>
  </TR>
</TABLE>
</FORM>



<script language="JavaScript">

  theimage1 = new Array();
  theimage1[0]=["img4.png", "", "1 of 3"];
  theimage1[1]=["img5.png", "", "2 of 3"];
  theimage1[2]=["img6.png", "", "3 of 3"];
  playspeed=3000;
  ab=0;

  window.onload=function(){
    preloadSlide1();
    SetSlide1(0);
  }

  function SetSlide1(num) {
    ab=num%theimage1.length;
    if(ab<0)ab=theimage1.length-1;
    document.images.imgslide1.src=theimage1[ab][0];
    document.getElementById('slidebox1').innerHTML=theimage1[ab][2];
  }

  function PlaySlide() {
    if (!window.playing) {
      PlayingSlide(ab+1);
      if(document.slideshow1.play){
    document.slideshow1.play.value="  Stop  ";
      }
    } else {
      playing=clearTimeout(playing);
      if(document.slideshow1.play){
    document.slideshow1.play.value="  Play  ";
      }
    }

    // if you have to change the image for the "playing" slide
    if(document.images.imgPlay){
      setTimeout('document.images.imgPlay.src="'+imgStop+'"',1);
      imgStop=document.images.imgPlay.src
    }
  }

  function PlayingSlide(num) {
    playing=setTimeout('PlayingSlide(ab+1);SetSlide1(ab+1);', playspeed);
  }

  function preloadSlide1() {
    for(bb=0;bb<theimage1.length;bb++) {
      theimage1[bb][0]=new Image().src=theimage1[bb][0];
    }
  }

</script>

<FORM NAME="slideshow1"> 
<TABLE>
  <TR>
    <TD COLSPAN="5"><script language="javascript">document.write('<img name="imgslide1" id="imgslide1" src="'+theimage1[0][0]+'">')</script></TD>
  </TR>
  <TR>
    <TD><A HREF="java script:SetSlide1(0);">First</A></TD>
    <TD><A HREF="java script:SetSlide1(ab-1);">Prev</A></TD>
    <TD><DIV ID="slidebox1"></DIV></TD>
    <TD><A HREF="java script:SetSlide1(ab+1);">Next</A></TD>
    <TD><A HREF="java script:SetSlide1(theimage1.length-1);">Last</A></TD>
  </TR>
</TABLE>
</FORM>
Avatar billede cmp77 Nybegynder
07. april 2007 - 10:13 #1
Kan det nu passe?? Er der virkelig ingen som kan hjælpe?? :)
Avatar billede roenving Novice
07. april 2007 - 13:14 #2
-- som de fleste andre af den slags ting, er den lavet til at være alene på en side, og derfor er der en window.onload-ting på, og da der så er en i begge dine script-blokke, vil den anden overskrive den første, men du kan da nøjes med en af dem, og så sætte begge ting i gang:

  window.onload=function(){
    preloadSlide0();
    SetSlide0(0);
    preloadSlide1();
    SetSlide1(0);
  }

-- men faktisk burde du finde en, der er objekt-baseret, så det ikke giver problemer, at der er flere på en side !-)
Avatar billede cmp77 Nybegynder
26. september 2013 - 20:01 #3
lukker
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