/ Forside/ Teknologi / Udvikling / Java Scripts / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Slideshow med vilkårlig start
Fra : webirene
Vist : 756 gange
400 point
Dato : 02-04-06 08:37

Jeg har via kandu fundet et script til brug for et slideshow af billeder. Jeg har prøvet det af - og det virker fint. Da der skal lægges en del billeder ind, kunne jeg godt tænke mig at det kunne laves på en sådan måde at det starter med et vilkårligt billede/rækkefølge. Hvis det altid er samme billede/rækkefølge når de sidste måske aldrig at blive vist, inden læseren går videre til næste side. Kan nogen hjælpe mig. Jeg er ikke skrap til det her - men kan indsætte et færdigt script. Så for at kunne forstå et svar, kræver det en helt konkret beskrivelse af, hvad jeg skal ændre og hvor.

Det script jeg har prøvet af ser sådan ud:

<script type="text/javascript" language="JavaScript1.2">
<!--
//Fade-in image slideshow- By Dynamic Drive
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use

var slideshow_width='123px' //SET IMAGE WIDTH
var slideshow_height='50px' //SET IMAGE HEIGHT
var pause=3000 //SET PAUSE BETWEEN SLIDE (3000=3 seconds)

var fadeimages=new Array()
//SET IMAGE PATHS. Extend or contract array as needed
fadeimages[0]="./images/billede_1.jpg"
fadeimages[1]="./images/billede_2.jpg"
fadeimages[2]="./images/billede_3.jpg"
fadeimages[3]="./images/billede_4.jpg"

////NO need to edit beyond here/////////////

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

var ie4=document.all
var dom=document.getElementById

if (ie4||dom)
document.write('<div

style="position:relative;width:'+slideshow_width+';height:'+slideshow_height+';overflow:hidden"><div

id="canvas0"

style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(opacity

=10);-moz-opacity:10"></div><div id="canvas1"

style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(opacity

=10);-moz-opacity:10"></div></div>')
else
document.write('<img name="defaultslide" src="'+fadeimages[0]+'">')

var curpos=10
var degree=10
var curcanvas="canvas0"
var curimageindex=0
var nextimageindex=1


function fadepic(){
if (curpos<100){
curpos+=10
if (tempobj.filters)
tempobj.filters.alpha.opacity=curpos
else if (tempobj.style.MozOpacity)
tempobj.style.MozOpacity=curpos/100
}
else{
clearInterval(dropslide)
nextcanvas=(curcanvas=="canvas0")? "canvas0" : "canvas1"
tempobj=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
tempobj.innerHTML='<img src="'+fadeimages[nextimageindex]+'">'
nextimageindex=(nextimageindex<fadeimages.length-1)? nextimageindex+1 : 0
setTimeout("rotateimage()",pause)
}
}

function rotateimage(){
if (ie4||dom){
resetit(curcanvas)
var crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.style.zIndex++
var temp='setInterval("fadepic()",50)'
dropslide=eval(temp)
curcanvas=(curcanvas=="canvas0")? "canvas1" : "canvas0"
}
else
document.images.defaultslide.src=fadeimages[curimageindex]
curimageindex=(curimageindex<fadeimages.length-1)? curimageindex+1 : 0
}

function resetit(what){
curpos=10
var crossobj=ie4? eval("document.all."+what) : document.getElementById(what)
if (crossobj.filters)
crossobj.filters.alpha.opacity=curpos
else if (crossobj.style.MozOpacity)
crossobj.style.MozOpacity=curpos/100
}

function startit(){
var crossobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.innerHTML='<img src="'+fadeimages[curimageindex]+'">'
rotateimage()
}

if (ie4||dom)
window.onload=startit
else
setInterval("rotateimage()",pause)
//-->
</script>

 
 
Kommentar
Fra : severino


Dato : 02-04-06 10:52

Jeg kunne forstille mig, at der skulle være en angivelse af antallet af billeder, som så bl.a. bruges til at generere en RND som kalder på billedet med heltallet af RND og køre ind i det sædvanlige loop.

Men jeg lure lige lidt på det!

Kommentar
Fra : webirene


Dato : 02-04-06 12:20

Det lyder svært, men hvis du kommer på noget hører jeg da gerne fra dig.

Accepteret svar
Fra : Random

Modtaget 400 point
Dato : 17-04-06 11:55

Prøv at ændre:
Kode
var curimageindex=0
var nextimageindex=1


til

Kode
var curimageindex= Math.floor(fadeimages.length * Math.random());
var nextimageindex= (curimageindex+1)%fadeimages.length;


Du får ikke en ny billedrækkefølge, men start billedet bliver tilfældigt.

Mvh
Random

Kommentar
Fra : severino


Dato : 17-04-06 14:44

Jeg må nok indrømme, at hvis det er hele familiegalleriet der bliver "kørt af" i en lang bane, og det virker ukendt eller uinteressant, så er der ikke mange chancer for, at alle bliver set af den samme besøgende.
Så måske skal du udvælge dine billeder med omhu; dele dem op i flere kategorier, som så vises i hver sit slideshow, så ville det virke mere indbydende.

Tænk på hvordan du selv vil opleve et slideshow med billeder fra en anden. Hvor længe vil du blive hængende, og se på; og kan du holde din klik-finger i ro så længe?

Kommentar
Fra : webirene


Dato : 17-04-06 17:07

Det er ikke familiealbummet - men en række sponsorer på en foreningshjemmeside. Det jeg gerne ville opnå, var at det ikke var de samme 2-3 sponsorer, man nåede at se hver gang. Men jeg kan jo prøve med skiftende startbilede, som Random fortæller - og så prioritere resten efter hvor meget de bidrager med.
Jeg lader lige mit spørgsmål stå åbent lidt endnu - men foreløbig er Randoms svar det bedste.

Godkendelse af svar
Fra : webirene


Dato : 08-10-06 22:25

Tak for svaret Random.
Det var vist lidt sent jeg fik dit svar accepteret - nu har jeg prøvet det af, og det dækker mit behov. Nu bliver jeg bare nødt til at lægge et nyt spørgsmål ind (ændre billederne til hyperlinks) - så må vi se om du også bliver bedst her.

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste