haiderMedlem sedan jan. 2003988 inlägg
:x
Först o främst, stort tack till alla som var med o hjälpte mig att kunna komma så långt med skriptet.
Ta en titt på:
http://www.animadesign.se/?test.htm
här finns javascriptet:
http://www.animadesign.se/script/imageloader_ny.js
Skriptet kan säkert verka jätterörigt i dina ögon, men jag gjorde mitt bästa för att samla ihop alla de lösa trådarna till ett enda script. Jag hade ju mer än ett inlägg i forumet.
Följande sak är problematisk
När man klickar på någon länk, så körs makeCenteredLayer(). Denna funktion i sin tur, anropar slideit(image,nr,lnk)
Det funkar vid första bilden. Vid andra bilden, så vet den inte längre vad image, nr och lnk står för.
Har någon en snabb lösning för det?
Vore kanon om ni kunde ställa upp :OO
JojoxxMedlem sedan juni 20004 306 inlägg
Jo, eftersom andra gången som funktionen anropas via setTimeout skickar du inte med några parametrar. Prova
setTimeout("slideit(\""+image+"\",\""+nr+"\",\""+lnk+"\")",5000)
haiderMedlem sedan jan. 2003988 inlägg
Jo, jag misstänkte nåt sånt redan från början, så jag provade med:
setTimeout("slideit(image,nr,lnk)",5000)
Det funkade förstås inte (min kod).
Din kod ser ju ungefär likadan ut, men lite annorlunda. Men vad betyder slashen för nåt?
Hur som helst: :P Det funkar!! (dock endast till 99%, måste finjustera lite till. Sen ska jag presentera resultatet :e )
JojoxxMedlem sedan juni 20004 306 inlägg
setTimeout tar ett uttryck som det sparar och exekverar x antal millisekunder senare. Det som exekveras är alltså just slideit(image,nr,lnk), men när det exekveras är scriptet inte längre kvar i funktionen makeCenteredLayer() och variablerna image, nr och lnk finns inte längre definierade. Så det du gör är att byta ut image mot värdet som image innehåller (och samma för nr och lnk).
backslashen (/ = slash, \ = backslash) används för definiera ett special-tecken. Om du terminerar (avslutar) en variabel med " kan du inte använda det tecknet mitt inne i variabeln. Exempel:
var foo="Karl "Kalle" Karlsson";
Kommer att generera ett scriptfel eftersom variabeln slutar efter "Karl ". För att sätta ett citat-tecken inne i en variabel som termineras med just citat-tecken använder du alltså backslash (\),
var foo="Karl \"Kalle\" Karlsson";
(Innehållet i variabeln blir alltså Karl "Kalle" Karlsson)
haiderMedlem sedan jan. 2003988 inlägg
Okej, detta var mycket användbart.
Men ändå har du något, som jag ännu inte förstår helt, nämligen \"" samt "\"
I vårt fall måste man tolka variabeln som:
""+image+"","" ... och isåfall, varför ska det vara dubbla citatstecken och inte ett?
Ett annat problem som jag upptäckt med skriptet är, att när jag stänger (döljer lagret), så körs slideit() fortfarande. Därmed, så börjar jag inte från 1, nästa gång jag kör makeLayer.
Dessutom krockar detta extremt mycket, när jag kör makeLayer med en ny bildserie.
En annan bieffekt, är att timern tycks löpa amock, den skiftar bild mycket snabbare.
Jag utgår från att variablerna måste resettas vid hideLayer. Går det?