webForumDet fria alternativet

Bild-script

5 svar · 233 visningar · startad av soffan76

soffan76Medlem sedan maj 2001684 inlägg
#1

Jag har ett litet bild-script som funkar fint. Dock fungerar det ej om jag vill byta ut knapparna mot bilder. Nån som vet hur man ska göra?

<form name="SlideShow">
<table>
<tr>
<td colspan=2><img name="Screen" width=200 height=150></td>
</tr>
<tr>
<td><input type="button" name="Previous" 
value=" << "
onClick="ShowSlide(-1)"></td>
<td align="right"><input type="button" name="Next"
value=" >> " onClick="ShowSlide(1)"></td>
</table>
</form>

Så här ser själva scriptet ut...mycket kod...

//Preloaded slideshow script- By Jason Moon
//For this script and more
//Visit [url]http://www.dynamicdrive.com[/url]

// PUT THE URL'S OF YOUR IMAGES INTO THIS ARRAY...
var Slides = new Array('img/ljungby_folk.gif','img/Carolina_Mattias.jpg','img/Carolina_Mattias.jpg');

// DO NOT EDIT BELOW THIS LINE!
function CacheImage(ImageSource) { // TURNS THE STRING INTO AN IMAGE OBJECT
   var ImageObject = new Image();
   ImageObject.src = ImageSource;
   return ImageObject;
}

function ShowSlide(Direction) {
   if (SlideReady) {
      NextSlide = CurrentSlide + Direction;
      // THIS WILL DISABLE THE BUTTONS (IE-ONLY)
      document.SlideShow.Previous.disabled = (NextSlide == 0);
      document.SlideShow.Next.disabled = (NextSlide == 
(Slides.length-1));    
 if ((NextSlide >= 0) && (NextSlide < Slides.length)) {
            document.images['Screen'].src = Slides[NextSlide].src;
            CurrentSlide = NextSlide++;
            Message = 'Picture ' + (CurrentSlide+1) + ' of ' + 
Slides.length;
            self.defaultStatus = Message;
            if (Direction == 1) CacheNextSlide();
      }
      return true;
   }
}

function Download() {
   if (Slides[NextSlide].complete) {
      SlideReady = true;
      self.defaultStatus = Message;
   }
   else setTimeout("Download()", 100); // CHECKS DOWNLOAD STATUS EVERY 100 MS
   return true;
}

function CacheNextSlide() {
   if ((NextSlide < Slides.length) && (typeof Slides[NextSlide] == 
'string'))
{ // ONLY CACHES THE IMAGES ONCE
      SlideReady = false;
      self.defaultStatus = 'Downloading next picture...';
      Slides[NextSlide] = CacheImage(Slides[NextSlide]);
      Download();
   }
   return true;
}

function StartSlideShow() {
   CurrentSlide = -1;
   Slides[0] = CacheImage(Slides[0]);
   SlideReady = true;
   ShowSlide(1);
}
soffan76Medlem sedan maj 2001684 inlägg
#2

Ok, strunt i knapparna, de får vara. Men nu ett nytt problem..hur får jag bilderna länkade?

solbulleMedlem sedan mars 20015 287 inlägg
#3

Detta borde fungera:

<script language="JavaScript"> 

//Preloaded slideshow script- By Jason Moon
//For this script and more
//Visit [url]http://www.dynamicdrive.com[/url]

// PUT THE URL'S OF YOUR IMAGES INTO THIS ARRAY...
var Slides = new Array('img/ljungby_folk.gif','img/Carolina_Mattias.jpg','img/Carolina_Mattias.jpg');
var slidelinks=new Array("http://www.dynamicdrive.com","http://wsabstract.com","http://www.geocities.com")
var whichlink=0

// DO NOT EDIT BELOW THIS LINE!
function CacheImage(ImageSource) { // TURNS THE STRING INTO AN IMAGE OBJECT
   var ImageObject = new Image();
   ImageObject.src = ImageSource;
   return ImageObject;
}

function ShowSlide(Direction) {
   if (SlideReady) {
      NextSlide = CurrentSlide + Direction;
      // THIS WILL DISABLE THE BUTTONS (IE-ONLY)
      document.SlideShow.Previous.disabled = (NextSlide == 0);
      document.SlideShow.Next.disabled = (NextSlide == 
(Slides.length-1));    
 if ((NextSlide >= 0) && (NextSlide < Slides.length)) {
            document.images['Screen'].src = Slides[NextSlide].src;
            CurrentSlide = NextSlide++;
            Message = 'Picture ' + (CurrentSlide+1) + ' of ' + 
Slides.length;
whichlink=NextSlide-1;
            self.defaultStatus = Message;
            if (Direction == 1) CacheNextSlide();
      }
      return true;
   }
}

function Download() {
   if (Slides[NextSlide].complete) {
      SlideReady = true;
      self.defaultStatus = Message;
   }
   else setTimeout("Download()", 100); // CHECKS DOWNLOAD STATUS EVERY 100 MS
   return true;
}

function CacheNextSlide() {
   if ((NextSlide < Slides.length) && (typeof Slides[NextSlide] == 
'string'))
{ // ONLY CACHES THE IMAGES ONCE
      SlideReady = false;
      self.defaultStatus = 'Downloading next picture...';
      Slides[NextSlide] = CacheImage(Slides[NextSlide]);

      Download();
   }
   return true;
}

function StartSlideShow() {
   CurrentSlide = -1;
   Slides[0] = CacheImage(Slides[0]);
   SlideReady = true;
   ShowSlide(1);
}

function link() {
window.location=slidelinks[whichlink]

}
</script> 

<body onLoad="StartSlideShow()">

<form name="SlideShow">
<table>
<tr>
<td colspan=2><a href><img name="Screen" width=200 height=150 onclick="link()"></A></td>
</tr>
<tr>
<td><input type="button" name="Previous" 
value=" << "
onClick="ShowSlide(-1)"></td>
<td align="right"><input type="button" name="Next"
value=" >> " onClick="ShowSlide(1)"></td>
</table>
</form>
solbulleMedlem sedan mars 20015 287 inlägg
#4

Vill du ha bilder får du ändra till:

<input type="image" name="Previous" SRC="leftarrow.gif" onClick="ShowSlide(-1)">

å liknande på den andra, samt att du måste nog utkommentera eller ta bort raderna:

      document.SlideShow.Previous.disabled = (NextSlide == 0);
      document.SlideShow.Next.disabled = (NextSlide == (Slides.length-1));
soffan76Medlem sedan maj 2001684 inlägg
#5

Tusen tack, båda dina lösningar funkade fint!!

soffan76Medlem sedan maj 2001684 inlägg
#6

Kortvarig lycka..nu strular det. Länkarna funkar bra men knappbilderna vill inte. Inget händer när jag klickar på pilarna, den första bilden laddas bara om igen :(. Nån idé om vad felet kan vara? Synd för det såg så snyggt ut med andra knapper.

133 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)