Avatar billede iceb1977 Nybegynder
25. februar 2002 - 11:27 Der er 9 kommentarer og
1 løsning

Forklaring af script ?????

Hi

Nedenunder er en status scroller, og

Jeg vil gerne vide følgende :

1.Er det muligt at bruge noget andet i stedet for

Math.abs ???? Hvad ??

2. Kan jeg få kommentarer på dette script

  nedenunder sådan jeg ved hvordan det fungerer

  da jeg ikke selv har lavet det ok ?


Koden følger :

<script language="JavaScript">


var scrtxt="Here goes your message the visitors to your page will "+
"look at for hours in pure fascination...";
var lentxt=scrtxt.length;
var width=100;
var pos=1-width;

function scroll() {
pos++;
var scroller="";
if (pos==lentxt) {
pos=1-width;
}
if (pos<0) {
for (var i=1; i<=Math.abs(pos); i++) {
scroller=scroller+" ";}
scroller=scroller+scrtxt.substring(0,width-i+1);
}
else {
scroller=scroller+scrtxt.substring(pos,width+pos);
}
window.status = scroller;
setTimeout("scroll()",150);
}
//-->
</script>
</head>
<body onLoad="scroll();return true;">

Avatar billede ras2000 Nybegynder
25. februar 2002 - 13:23 #1
Hvorfor vil du ikke bruge Math.abs? Den tager den absolutte værdi af et tal. Du kan vel skrive noget andet ala if(pos<0) pos = -pos i stedet, men jeg kan ikke se nogen grund til at gøre det.

En meget hurtig gennemgang:

først bliver nogle konstanter defineret
var scrtxt="Here goes your message the visitors to your page will "+
"look at for hours in pure fascination...";
Teksten der bliver skrevet.
var lentxt=scrtxt.length;
antallet af karakterer i teksten.
var width=100;
sætter en bredde lig 100. Bliver brugt senere.
var pos=1-width;
regner en position ud som 1 minus bredden

her starter functionen
function scroll() {
pos++;
Der bliver lagt en til variablen pos
var scroller="";
teksten scroller bliver sat til ingenting
if (pos==lentxt) {
hvis pos = antallet af tegn i teksten, dføres følgende
pos=1-width;
siger vidst sig selv, pos er lig 1 minus width
}
if (pos<0) {
Hvis pos er negativ udføres følgende
for (var i=1; i<=Math.abs(pos); i++) {
det følgende bliver udført mens i er mindre end den absolutte værdi af pos, hver gang det bliver udført bliver der lagt 1 til i.
scroller=scroller+" ";}
scroller bliver udvidet med et mellemrum
scroller=scroller+scrtxt.substring(0,width-i+1);
de første width-i+1 tegn af scrtxt bliver lagt til tekststrengen scroller
}her slutter din for next løkke
else {
hvis pos er positiv bliver følgende udført
scroller=scroller+scrtxt.substring(pos,width+pos);
}
window.status = scroller;her bliver scroller sendt til statusbaren
setTimeout("scroll()",150);scroll bliver startet efter 150 millisekunder
}
//-->
</script>
</head>
<body onLoad="scroll();return true;">
Avatar billede iceb1977 Nybegynder
25. februar 2002 - 14:25 #2
Hej

Jeg kender ikke den der Math.abs og har aldrig brugt den før

derfor hvad kan jeg bruge i stedet for ?
Avatar billede iceb1977 Nybegynder
25. februar 2002 - 14:25 #3
Det er altså denne linie jeg vil ændre ok ?

for (var i=1; i<=Math.abs(pos); i++) {
Avatar billede ras2000 Nybegynder
25. februar 2002 - 14:32 #4
Du kan skrive i<=-pos eller -i >= pos, eller et utal af andre variationer.
Den kører kun i de tilfælde hvor pos er mindre end nul. Den absolutte værdi af et negativt tal er -1 gange tallet. Men du kan ligeså godt bruge Math.abs, så har du brugt det, og er blevet det stykke klogere.
Avatar billede iceb1977 Nybegynder
25. februar 2002 - 14:40 #5
Det virker ikke skrive hele linjen tak med rettelsen ok ?

for (var i=1; i<=Math.abs(pos); i++) {
Avatar billede ras2000 Nybegynder
25. februar 2002 - 14:43 #6
for (var i=1; i<=(-1*pos); i++) {
Avatar billede ras2000 Nybegynder
25. februar 2002 - 14:45 #7
Eller
for (var i=-1; i>=pos; i--) {
Avatar billede iceb1977 Nybegynder
25. februar 2002 - 14:53 #8
for (var i=-1; i>=pos; i--) {
ok den tager jeg ... kan du lige knytte en kommentar til den tak ?
Avatar billede ras2000 Nybegynder
25. februar 2002 - 14:58 #9
Det er hvad man kalder en for to next løkke, i hvert fald hvis man er lidt oppe i årene. Den siger at i er lig minus en. gentag det efterfølgende, så længe i er større end tallet pos. For hver gang løkken udføres, skal der trækkes en fra i.
Den udfører koden der ligger inde i {}'erne.
Første gang den kører igennem, er i lig -1, anden gang er i = -2, så -3 indtil i = pos, hvor pos er et negativt tal.
Avatar billede iceb1977 Nybegynder
25. februar 2002 - 15:52 #10
ok takker og lukker ...
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