Avatar billede disable Nybegynder
20. september 2004 - 19:05 Der er 4 kommentarer og
1 løsning

Undgå at indtaste 'addPic' for hver billedefil.

Hil ærede eksperter.

Jeg har indsat denne kode på min brors hjemmeside, fordi han har nogle billeder, han gerne vil vise frem ..

Koden har jeg fundet på nettet, da jeg ikke er den helt store javascript haj.
---->
      <form>
<center>
<script type=text/javascript>
var current = 0;
var myPics = new Array();
function addPic(_p) {
  myPics[myPics.length?myPics.length:0] = new Image();
  myPics[myPics.length-1].src=_p;
}

addPic("01.jpg");
addPic("02.jpg");
addPic("03.jpg");
addPic("04.jpg");
addPic("05.jpg");
addPic("06.jpg");
addPic("07.jpg");
addPic("08.jpg");
addPic("09.jpg");
addPic("10.jpg");

function checkIt(val) {
  current = Math.abs((current+parseInt(val))%myPics.length);
  document.myimg.src = myPics[current].src;
}

</script>
<p>
<br><input type=button value="-" onclick="checkIt(-1)">
<script type=text/javascript>
document.write("<img name=myimg alt='' src='"+myPics[current].src+"'>");
</script>
<input type=button value="+" onclick="checkIt(1)"> </p>
</center>
</form>

Mit spørgsmål går nu på, om det ikke er muligt at bede scriptet om, selv at finde ud af, om der er flere/færre billeder i mappen og så 'cykle' mellem de, der er.
De vil være navngivet som ovenfor, men det er jo noget lettere for mig, hvis jeg ikke skal ind og lægge nye linier ind, hvis han finder ud af, at han hellere vil have 12, 14 eller 100 billeder i samme katergori..

Kan man det? - Hvodden ? :-)

/disable
Avatar billede roenving Novice
21. september 2004 - 03:17 #1
Principielt kan det ikke laves meget kortere, men hvis du kender antallet, kan man lave en simpel løkke:

<script type=text/javascript>
var current = 0;
var numPics = 10;//Her angives antallet ...

function twoDigits(num){
  return (10>num)?"0"+num:""+num;
}

var myPics = new Array();

for(i=0;numPics>i;i++){
  myPics[i] = new Image();
  myPics[i].src = twoDigits(i+1)+".jpg";
}

function checkIt(val) {
  current = Math.abs((current+parseInt(val))%myPics.length);
  document.myimg.src = myPics[current].src;
}

</script>

-- hvis der kan være flere end 99 og der kan være 3-cifrede billed-navne, kan det være at der skal tilføjes !-)
Avatar billede disable Nybegynder
21. september 2004 - 08:17 #2
Se.. Det var sq da noget smartere!
Selvom der jo så stadig ville skulle opdateres, hvis der kommer flere billeder på.

Det, jeg fiskede efter var mere, at scriptet selv kunne finde ud af, når der ikke er flere billeder at vise i den serie (f.eks. ved 14.jpg), begynder forfra ved 01.jpg.

(Har vist nok læst et sted, at det kræver PHP eller lign... Og det vil jeg helst ikke ud i.)

/d
Avatar billede roenving Novice
21. september 2004 - 15:36 #3
Ja, javascriptet, som afvikles på klienten, kan ikke læse et bibliotek på serveren, så det er nødvendigt med noget server-side, hvis du ikke skal opdatere antallet med håndkraft !-)

-- men hvis du skal køre frem eller tilbage i billed-rækken er checkIt-funktionen i forvejen indrettet til at starte forfra, hvis man når det sidste !o]

-- velbekomme '-)
Avatar billede disable Nybegynder
21. september 2004 - 15:56 #4
Ganske, som jeg havde gættet.

Du skal i hvert fald have point for dit svar + kode, da den trods alt er lettere at opdatere i fremtiden :-D

Takker for hjælpen :-)

/disable
Avatar billede roenving Novice
21. september 2004 - 15:58 #5
-- og jeg takker for point ;~}
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