Avatar billede cybermaster Nybegynder
16. april 2003 - 16:22 Der er 22 kommentarer og
1 løsning

ret i script.

<style>
.fade {
filter: blendTrans(duration=1); //Duration = varighed i sekunder
}
</style>
<script>
billeder = new Array("pic1.gif", "pic2.gif", "pic3.gif", "pic4.gif", "pic5.gif", "pic6.gif", "pic7.gif", "pic8.gif", "pic9.gif", "pic10.gif", "pic11.gif", "pic12.gif", "pic13.gif", "pic14.gif", "pic15.gif", "pic16.gif"); //Billederne
fade = 1000; //Fade-hastighed i millisekunder - husk også at rette i stylen!
hast = 3000; //Skifte-hastighed uden fade-tid (ms)

bp = new Array();

for (i = 0; i < billeder.length; i++) {
bp[i] = new Image();
bp[i].src = billeder[i];
}

plac = new Array();

for (i = 0; i < 5; i++)
plac[i] = i;

foer = null;

function shuffle() {
tal = tilf();
tal2 = tilf2();
if (tal2 < 5) {tal2 = tal2 + 5;}
if (document.all)
document.images["bill" + tal].filters.blendTrans.apply();
document.images["bill" + tal].src = bp[tal2].src;
if (document.all)
document.images["bill" + tal].filters.blendTrans.play();
plac[tal] = tal2;
setTimeout(shuffle, fade + hast);
}

function tilf() {
do
rand = Math.floor(Math.random() * 5);
while (rand == foer);
foer = rand;
return rand;
}

function tilf2() {
do
rand = Math.floor(Math.random() * billeder.length);
while (erUde(rand));
return rand;
}

function erUde(nr) {
for (i = 0; i < 6; i++)
if (plac[i] == nr)
return true;
return false;
}
</script>
</head>

<body topmargin="10" leftmargin="10" onLoad="if (billeder.length > 10) setTimeout(shuffle, fade + hast);" bgcolor="#C3D336">

-------------------

<script>
for (i = 0; i < 5; i++) {
document.write('<td><img src="' + billeder[i] + '" border="0" name="bill' + i + '" class="fade"></td>');
}
</script>

------------------

Jeg ved ikke om det er en fejl, eller det ikke har virked sådan,...

Det samme billedet må KUN blive vist som en adgangen, altås ikke to ens billeder på engang.

Takker.
Avatar billede Slettet bruger
19. april 2003 - 10:28 #1
Det er fordi, der er en eller anden, der har rettet i mit ellers så geniale script (...)! :)
Slet:

if (tal2 < 5) {tal2 = tal2 + 5;}

... og ændr dette:

do
rand = Math.floor(Math.random() * billeder.length);

... til dette:

do {
rand = Math.floor(Math.random() * billeder.length);
if (rand < 5)
rand += 5;
}
Avatar billede noobie Nybegynder
19. april 2003 - 10:50 #2
<style>
.fade {
filter: blendTrans(duration=1); //Duration = varighed i sekunder
}
</style>
<script>
billeder = new Array("pic1.gif", "pic2.gif", "pic3.gif", "pic4.gif", "pic5.gif", "pic6.gif", "pic7.gif", "pic8.gif", "pic9.gif", "pic10.gif", "pic11.gif", "pic12.gif", "pic13.gif", "pic14.gif", "pic15.gif", "pic16.gif"); //Billederne
fade = 1000; //Fade-hastighed i millisekunder - husk også at rette i stylen!
hast = 3000; //Skifte-hastighed uden fade-tid (ms)

bp = new Array();

for (i = 0; i < billeder.length; i++) {
bp[i] = new Image();
bp[i].src = billeder[i];
}

plac = new Array();

for (i = 0; i < 5; i++)
plac[i] = i;

foer = null;

function shuffle() {
tal = tilf();
tal2 = tilf2();
if (document.all)
document.images["bill" + tal].filters.blendTrans.apply();
document.images["bill" + tal].src = bp[tal2].src;
if (document.all)
document.images["bill" + tal].filters.blendTrans.play();
plac[tal] = tal2;
setTimeout(shuffle, fade + hast);
}

function tilf() {
do {
rand = Math.floor(Math.random() * billeder.length);
if (rand < 5)
rand += 5;
}
while (rand == foer);
foer = rand;
return rand;
}

function tilf2() {
do
rand = Math.floor(Math.random() * billeder.length);
while (erUde(rand));
return rand;
}

function erUde(nr) {
for (i = 0; i < 6; i++)
if (plac[i] == nr)
return true;
return false;
}
</script>
</head>

<body topmargin="10" leftmargin="10" onLoad="if (billeder.length > 10) setTimeout(shuffle, fade + hast);" bgcolor="#C3D336">

-------------------

<script>
for (i = 0; i < 5; i++) {
document.write('<td><img src="' + billeder[i] + '" border="0" name="bill' + i + " class="fade"></td>');
}
</script>
Avatar billede Slettet bruger
19. april 2003 - 10:58 #3
Tja, noobie, du må være stolt af dit arbejde i dag. Find en anden måde at få point på; ellers er det sgu for sølle!
Avatar billede noobie Nybegynder
19. april 2003 - 10:59 #4
ja undskyld :(
Men så skriv dit svar !!!
Jeg ved det godt men du skrev jo ikke svaret...
Dit var kun en kommentar :)
Avatar billede noobie Nybegynder
19. april 2003 - 11:01 #5
jeg skriver bare hele koden !!! Som et svar :[
Avatar billede Slettet bruger
19. april 2003 - 11:03 #6
Og det er jo netop ikke et svar, det er en uddybning, og endda en ligegyldig en. Grunden til, at jeg ikke skriver hele koden er, at det fylder en masse og gør spørgsmålet helt uoverskueligt.
Derudover lægger jeg aldrig et svar, før jeg er sikker på, jeg har 100% ret. Noget du (og andre) kunne lære.
Avatar billede cybermaster Nybegynder
22. april 2003 - 19:15 #7
phoenixv >> lig et svar ;-)
Avatar billede cybermaster Nybegynder
22. april 2003 - 19:20 #8
jeg var lidt for hurtig, oplever stadivæk, at de samme billeder kommer frem flere af gangen.
Avatar billede Slettet bruger
22. april 2003 - 20:33 #9
Smid lige et link.
Avatar billede cybermaster Nybegynder
17. maj 2003 - 12:47 #10
Smid et svar, istedet...

Beklager havde glemt det åbne spm.
Avatar billede roenving Novice
17. maj 2003 - 12:51 #11
Der er da flere fejl -- ihvertfald i det noobie har lagt op ...

Det kommer måske fra en-linjers statements, men en del tilfælde af manglende funktionsafgrænsninger -- bla. i det du skrev phoenixv ;-|
Avatar billede Slettet bruger
18. maj 2003 - 10:45 #12
roenving>> Du må vist forklare dig, tror jeg. Mit script har virket før, det ved jeg da.

cybermaster>> Jeg skal ikke have point, hvis jeg ikke kunne hjælpe.
Avatar billede roenving Novice
18. maj 2003 - 12:57 #13
F.eks. denne:

do {
rand = Math.floor(Math.random() * billeder.length);
if (rand < 5)
rand += 5;
}

-- for det første har du en if på flere linjer uden funktionsafgrænsning {} og for det andet kan jeg ikke lige se hvordan man kan slippe ud af do-sætningen -- men det hænger måske sammen med en manglende { i if'en ?-)

Hvis man bare kigger et øjeblik på noobies, støder man ind i en masse, som denne der er ulovlig i flere linjer:

for (i = 0; i < 5; i++)
plac[i] = i;

mvh
jes
Avatar billede Slettet bruger
18. maj 2003 - 16:11 #14
roenving>> Hvis en if-sætning kun indeholder én kommando, må man godt undlade {}. Det er skam også ganske standard at gøre det.

Mht. do, så er det jo også en ganske normal do-while forgrening. Jeg forstår ikke, hvor du vil hen med det? :)
Avatar billede Slettet bruger
18. maj 2003 - 16:13 #15
do {
rand = Math.floor(Math.random() * billeder.length);
if (rand < 5)
rand += 5;
}
while (erUde(rand));

... er det samme som at sige:

rand = Math.floor(Math.random() * billeder.length);
if (rand < 5)
rand += 5;
while (erUde(rand)) {
  rand = Math.floor(Math.random() * billeder.length);
  if (rand < 5)
    rand += 5;
}
Avatar billede roenving Novice
18. maj 2003 - 16:16 #16
-- men hvordan slipper man ud af den angivne do ?-) ...

-- det kunne være jeg lige skulle tage fat i min syntaks-bog omkring enkelt-statement- og enkelt-linje-løkker ,-)
Avatar billede roenving Novice
18. maj 2003 - 16:18 #17
-- øeh, måske skal skærmen også pudses ...
noget af det havde jeg overset ;-|
Avatar billede Slettet bruger
18. maj 2003 - 16:18 #18
Man slipper ud af den angivne do, når while-sætningen, der står bagefter, er falsk. Men do når altid at blive udført mindst én gang.

Mht. enkeltlinje-løkker og -betingelser, så ja: Det er nok en god idé at stave bogen af. :)
Avatar billede Slettet bruger
18. maj 2003 - 16:23 #19
roenving>> Prøv dette:

<script>
if (confirm("Tryk OK eller Annuller"))
  alert("Bla");

if (confirm("Tryk OK eller Annuller")) {
  alert("Bla");
}

if (confirm("Tryk OK eller Annuller"))
  alert("Bla");
alert("Bla2");

if (confirm("Tryk OK eller Annuller")) {
  alert("Bla");
  alert("Bla2");
}
</script>

En lille demonstration. :)
Avatar billede Slettet bruger
18. maj 2003 - 16:26 #20
Hvis man i øvrigt forgrener endnu en if-sætning, behøves heller ikke {}, også selvom den anden if-sætning indeholder mere end én kommando:

if (document.all)
  if (document.getElementById) {
    alert("Hurra!");
    alert("Du bruger IE5+");
  }

I dette tilfælde er det dog påkrævet:

if (document.all) {
  if (document.getElementById) {
    alert("Hurra!");
    alert("Du bruger IE5+");
  }
}
else
  alert("Tja, du er i hvert fald ikke IE!");
Avatar billede cybermaster Nybegynder
18. juni 2003 - 12:35 #21
phoenixv >> lig et svar.
Avatar billede Slettet bruger
18. juni 2003 - 15:07 #22
That I will.
Avatar billede cybermaster Nybegynder
20. juni 2003 - 12:30 #23
Tak for hjælpen, og unskyld vente tiden.
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