25. februar 2002 - 11:27Der 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;">
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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;">
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.
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.
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.