/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
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
Timed random image swap
Fra : Koeffe


Dato : 25-08-05 15:07

Jeg søger noget kode som kan skifte et billede ud med et
andet tilfældigt billede, hvert 10. minut.

Det skal være javascript, da jeg skal bruge en .html som jeg
kan bruge som windows baggrund.

Er der nogen der kan hjælpe?

På forhånd tak.



--
Koeffe



 
 
Koeffe (25-08-2005)
Kommentar
Fra : Koeffe


Dato : 25-08-05 15:39

"Koeffe"

| Er der nogen der kan hjælpe?


Jeg har selv prøvet mig frem med koden fra
http://support.centralad.com/cgi-bin/database/support/showcontent.htm?content_id=67&level=2

....og rette lidt i den, men jeg kan ikke få det til at
virke...


--
Koeffe



Koeffe (25-08-2005)
Kommentar
Fra : Koeffe


Dato : 25-08-05 16:52


|| Er der nogen der kan hjælpe?
|
|
| Jeg har selv prøvet mig frem med koden fra
|
http://support.centralad.com/cgi-bin/database/support/showcontent.htm?content_id=67&level=2

Jeg fandt også denne her:
http://www.mediacollege.com/internet/javascript/image/random.html

jeg forstår bare ikke lige hvornår den skifter billede? og
hvad laver "dato" i koden?

desuden vil jeg gerne kunne style billedet....


--
Koeffe



Henny (25-08-2005)
Kommentar
Fra : Henny


Dato : 25-08-05 17:48


"Koeffe" <graphic.muse[fjernes]@[fjernes]gmail.com> skrev i en meddelelse
news:430dd090$0$140$edfadb0f@dread11.news.tele.dk...
> Jeg søger noget kode som kan skifte et billede ud med et
> andet tilfældigt billede, hvert 10. minut.
>
> Det skal være javascript, da jeg skal bruge en .html som jeg
> kan bruge som windows baggrund.
>
> Er der nogen der kan hjælpe?

Prøv at kigge på http://javascript.internet.com eller
http://astrogate.virtualave.net

Der har jeg fundet det, jeg bruger i headeren på http://hennystewart.dk

Billedet skifter ganske vist meget tiere end hvert 10. minut, men det må vel
bare være et spørgsmål om at rette et eller andet sted i javascriptet.

Mvh.

Henny



Koeffe (25-08-2005)
Kommentar
Fra : Koeffe


Dato : 25-08-05 18:28


"Henny"


| Prøv at kigge på http://javascript.internet.com eller
| http://astrogate.virtualave.net
|

Jeg fandt vist 3 stykker. De to af dem skiftede vist bare
farve....

Denne her:
http://www.codelifter.com/main/javascript/2waybackslide.html
....var sådan set meget god. Så skal den bare lige gøres
random. Hvordan gør jeg det?


--
Koeffe



Koeffe (25-08-2005)
Kommentar
Fra : Koeffe


Dato : 25-08-05 19:18

Koeffe

| Denne her:
|
http://www.codelifter.com/main/javascript/2waybackslide.html
| ...var sådan set meget god. Så skal den bare lige gøres
| random. Hvordan gør jeg det?

Nå, så fandt jeg denne her:
http://javascript.internet.com/miscellaneous/random-image-rotator.html

Den er god.

Så skal jeg bare finde en let måde at sætte ca. 550 filnavne
ind i scriptet på, så jeg ikke skal skrive dem ind manuelt.


--
Koeffe



Koeffe (25-08-2005)
Kommentar
Fra : Koeffe


Dato : 25-08-05 23:11

"Koeffe" fortsætter sin monolog...


| Nå, så fandt jeg denne her:
|
http://javascript.internet.com/miscellaneous/random-image-rotator.html
|
| Den er god.
|
| Så skal jeg bare finde en let måde at sætte ca. 550
filnavne
| ind i scriptet på, så jeg ikke skal skrive dem ind
manuelt.

Hmm.... Det script preloader vist alle billederne. - Min
computer er ved at crashe når jeg åbner siden, hvor der skal
preloades 550 billeder. Hvordan kommer man uden om
preloadingen?

--
Koeffe



Kasper Lindberg (27-08-2005)
Kommentar
Fra : Kasper Lindberg


Dato : 27-08-05 10:35


"Koeffe" <graphic.muse[fjernes]@[fjernes]gmail.com> skrev i en meddelelse
news:430e41d2$0$182$edfadb0f@dread11.news.tele.dk...
> "Koeffe" fortsætter sin monolog...
>
> Min
> computer er ved at crashe når jeg åbner siden, hvor der skal
> preloades 550 billeder. Hvordan kommer man uden om
> preloadingen?
>

Jeg bruger selv dette scritpt.
arrayet fileara indeholder stier til billeder

<script type="text/javascript">
var rndnum;
var filelist="sti til billede,sti til billede,...";
//omdan til array
var fileara=filelist.split(",");

function skiftimg(nr) {
if (isNaN(nr)) {nr=Math.round(Math.random()*(fileara.length-1))}
document.theimage.src=fileara[nr];

//generer tilfældigt heltal forskelligt fra nr
do {
rndnum=Math.round(Math.random()*fileara.length)
if (rndnum==fileara.length) {rndnum=nr}
} while (rndnum == nr)

//preload næste billede
var preload=new Image();
preload.src=fileara[rndnum];
//uskift 5000 med antal sekunder på 10 min
setTimeout('skiftimg(' + rndnum+ ')',5000,"javascript")
}
</script>

scriptet loader kun de billeder det skal bruge

den tilhørende stump html

<img id="theimage" name="theimage" src="startbillede.jpg"
style="height:250px" alt="skiftende billeder">

Hvis du ikke vil have det samme startbillede hver gang kan du bruge

<body onload="skiftimg(Math.round(Math.random()*(fileara.length-1)))">

første billede bliver dog ikke preloadet.

/Kasper



Koeffe (28-08-2005)
Kommentar
Fra : Koeffe


Dato : 28-08-05 18:23

"Kasper Lindberg"
| <script type="text/javascript">
| var rndnum;
| var filelist="sti til billede,sti til billede,...";
| //omdan til array
| var fileara=filelist.split(",");

Mange tak for hjælpen, men kan ikke lige få det til at
virke.

Det der med at omdanne til array ved jeg ikke lige hvordan
jeg gør. Gider I skrive koden præcis som den skal være - og
gerne med Lasses rettelser.


--
Koeffe



Lasse Reichstein Nie~ (27-08-2005)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 27-08-05 11:32

"Kasper Lindberg" <NoSp@m.invalid> writes:

> <script type="text/javascript">
> var rndnum;
> var filelist="sti til billede,sti til billede,...";
> //omdan til array
> var fileara=filelist.split(",");

Man kunne også skrive array direkte:
var fileara=["sti til billede",
"sti til billede",
//...
];

> function skiftimg(nr) {
> if (isNaN(nr)) {nr=Math.round(Math.random()*(fileara.length-1))}

Denne beregning giver 0 og (fileara.length-1) halv så stor chance
for at blive udtrukket som de andre tal. Brug i stedet:
nr = Math.floor(Math.random()*fileara.length);

Man skal generelt ikke bruge Math.round når man laver tilfældige tal :)

> //generer tilfældigt heltal forskelligt fra nr

Ikke så nødvendigt i de tilfælde hvor "nr" lige er blevet valgt
tilfældigt.

> do {
> rndnum=Math.round(Math.random()*fileara.length)

Samme problem.

> if (rndnum==fileara.length) {rndnum=nr}
> } while (rndnum == nr)


Prøv at skifte alt det ovenstående ud med:

var n = fileara.length;
rndnum = Math.floor(Math.random()*(n - (nr < n)));
if (rndnum >= nr) { rndnum++; }

Det giver et tal mellem 0 og fileara.length-1 der ikke er lig med nr.

> Hvis du ikke vil have det samme startbillede hver gang kan du bruge
>
> <body onload="skiftimg(Math.round(Math.random()*(fileara.length-1)))">

Koden giver allerede et tilfældigt billede hvis argumentet ikke er et
tal, så bare
onload="skiftimg();"
skulle være nok.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Kasper Lindberg (27-08-2005)
Kommentar
Fra : Kasper Lindberg


Dato : 27-08-05 13:22


"Lasse Reichstein Nielsen" <lrn@hotpop.com> skrev i en meddelelse
news:hddbvfgd.fsf@hotpop.com...
> "Kasper Lindberg" <NoSp@m.invalid> writes:
>
>> <script type="text/javascript">
>> var rndnum;
>> var filelist="sti til billede,sti til billede,...";
>> //omdan til array
>> var fileara=filelist.split(",");
>
> Man kunne også skrive array direkte:
> var fileara=["sti til billede",
> "sti til billede",
> //...
> ];
>

Ja, selvfølgelig, men i min version bruger jeg ASP og FSO til at gennemlæse
en mappe på min server for billeder, hvorefter jeg gemmer hver sti i en
variabel. som til sidst udskrives så javascriptet har noget at arbejde med.


>> function skiftimg(nr) {
>> if (isNaN(nr)) {nr=Math.round(Math.random()*(fileara.length-1))}
>
> Denne beregning giver 0 og (fileara.length-1) halv så stor chance
> for at blive udtrukket som de andre tal. Brug i stedet:
> nr = Math.floor(Math.random()*fileara.length);
>
> Man skal generelt ikke bruge Math.round når man laver tilfældige tal :)

hvad er forskellen på floor og round?

>
>> //generer tilfældigt heltal forskelligt fra nr
>
> Ikke så nødvendigt i de tilfælde hvor "nr" lige er blevet valgt
> tilfældigt.
>

jo, fordi at jeg her allerede har skiftet billedet og er gået igang med at
vælge det næste billede der skal vises

>> do {
>> rndnum=Math.round(Math.random()*fileara.length)
>
> Samme problem.
>
>> if (rndnum==fileara.length) {rndnum=nr}

ovenstående linie er pga. en bug i mit ASP-script, den kan fjernes.

>> } while (rndnum == nr)
>
>
> Prøv at skifte alt det ovenstående ud med:
med "alt ovenstående" mener du så do-while-løkken?
>

> var n = fileara.length;
> rndnum = Math.floor(Math.random()*(n - (nr < n)));
> if (rndnum >= nr) { rndnum++; }
>

hvad sker der her? : (n-(nr<n))

> Det giver et tal mellem 0 og fileara.length-1 der ikke er lig med nr.
>
>> Hvis du ikke vil have det samme startbillede hver gang kan du bruge
>>
>> <body onload="skiftimg(Math.round(Math.random()*(fileara.length-1)))">
>
> Koden giver allerede et tilfældigt billede hvis argumentet ikke er et
> tal, så bare
> onload="skiftimg();"
> skulle være nok.
>

ja, ud over at den vist nok vil brokke sig over et manglende argument. Der
skal overføres noget.

/Kasper



Lasse Reichstein Nie~ (28-08-2005)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 28-08-05 01:56

"Kasper Lindberg" <NoSp@m.invalid> writes:

> hvad er forskellen på floor og round?

Math.round runder til nærmeste heltal mens Math.floor runder ned.
Altså,
Math.round(0.5) == 1
og
Math.floor(0.5) == 0

Da Math.random() giver et tal mellem 0 (inklusiv) og 1 (eksklusiv),
så vil Math.floor(Math.random()*7) give et heltal fra 0 til 6 med
så godt som lige stor sandsynlighed.

> jo, fordi at jeg her allerede har skiftet billedet og er gået igang med at
> vælge det næste billede der skal vises

Ah, det var jo en detalje.

> med "alt ovenstående" mener du så do-while-løkken?

Glem det igen.

>> var n = fileara.length;
>> rndnum = Math.floor(Math.random()*(n - (nr < n)));
>> if (rndnum >= nr) { rndnum++; }
>>

> hvad sker der her? : (n-(nr<n))

Det er den (for?) korte version af
n - ((nr<n)?1:0)
altså
((nr<n)?n-1:n)

Det har også den sideeffekt at hvis "nr" ikke er et tal (mere præcist,
hvis det bliver til NaN når man konverterer det til et tal), så vil
(nr<n) altid være falsk.

>> Det giver et tal mellem 0 og fileara.length-1 der ikke er lig med nr.

>>> <body onload="skiftimg(Math.round(Math.random()*(fileara.length-1)))">

>> onload="skiftimg();"

> ja, ud over at den vist nok vil brokke sig over et manglende argument. Der
> skal overføres noget.

Det bør den ikke. Det er fuldt lovligt at angive for få eller for mange
argumenter i Javascript.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408851
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste