Avatar billede lch Nybegynder
14. marts 2001 - 14:45 Der er 18 kommentarer og
2 løsninger

Endnu et script driller!

Jeg skal nok få det lært efterhånden, men.....

Jeg har et script der hedder bobler.js med følgende indhold:

Image0=new Image();
Image0.src=\"grafik/whitebubble.gif\";
Amount=20;

Ymouse=-50;
Xmouse=-50;
Ypos=new Array();
Xpos=new Array();
Speed=new Array();
rate=new Array();
grow=new Array();
Step=new Array();
Cstep=new Array();
nsSize=new Array();
ns=(document.layers)?1:0;
WinHeight=(document.layers)?window.innerHeight:window.document.body.clientHeight;
(document.layers)?window.captureEvents(Event.MOUSEMOVE):0;
function Mouse(evnt){
Ymouse=(document.layers)?evnt.pageY-20:event.y-20;
Xmouse=(document.layers)?evnt.pageX:event.x;
}
(document.layers)?window.onMouseMove=Mouse:document.onmousemove=Mouse;
for (i=0; i < Amount; i++){                                                               
Ypos[i]=Math.random()*WinHeight-Ymouse;
Xpos[i]=Xmouse;
Speed[i]=Math.random()*10+1;
Cstep[i]=0;
Step[i]=Math.random()*0.1+0.05;
grow[i]=4;
nsSize[i]=Math.random()*15+5;
rate[i]=Math.random()*0.5+0.1;
}
if (ns){
for (i = 0; i < Amount; i++){
document.write(\"<LAYER NAME=\'sn\"+i+\"\' LEFT=0 TOP=0><img src=\"+Image0.src+\" name=\'N\' width=\"+nsSize[i]+\" height=\"+nsSize[i]+\"></LAYER>\");
}
}
else{
document.write(\'<div style=\"position:absolute;top:0px;left:0px\"><div style=\"position:relative\">\');
for (i = 0; i < Amount; i++){
document.write(\'<img id=\"si\" src=\"\'+Image0.src+\'\" style=\"position:absolute;top:0px;left:0px;filter:alpha(opacity=90)\">\');
}
document.write(\'</div></div>\');
}
function MouseBubbles(){
var hscrll=(document.layers)?window.pageYOffset:document.body.scrollTop;
var wscrll=(document.layers)?window.pageXOffset:document.body.scrollLeft;
for (i=0; i < Amount; i++){
sy = Speed[i]*Math.sin(270*Math.PI/180);
sx = Speed[i]*Math.cos(Cstep[i]*5);
Ypos[i]+=sy;
Xpos[i]+=sx;
if (Ypos[i] < -40){
Ypos[i]=Ymouse;
Xpos[i]=Xmouse;
Speed[i]= 6+Math.random()*3;
grow[i]=4;
nsSize[i]=Math.random()*15+5;
}
if (ns){
document.layers[\'sn\'+i].left=Xpos[i]+wscrll;
document.layers[\'sn\'+i].top=Ypos[i]+hscrll;
}
else{
si[i].style.pixelLeft=Xpos[i]+wscrll;
si[i].style.pixelTop=Ypos[i]+hscrll;
si[i].style.width=grow[i];
si[i].style.height=grow[i];
}
grow[i]+=rate[i];
Cstep[i]+=Step[i];
if (grow[i] > 24) grow[i]=25;
}
setTimeout(\'MouseBubbles()\',10);
}

Hvordan kalder jeg det frem?

<script language=\'javascript\'>
function Mouse(evnt){
</script>  ?
Avatar billede engrob Nybegynder
14. marts 2001 - 16:12 #1
<body onLoad=\"MouseBubbles()\">
Avatar billede lch Nybegynder
14. marts 2001 - 16:36 #2
Jeg har nu prøvet både at skrive:
<script language=\'javascript\'>
<body onLoad=\"MouseBubbles()\">
</script>

og bare

<body onLoad=\"MouseBubbles()\">

men det kommer der ingen bobler ud af.

Avatar billede lch Nybegynder
14. marts 2001 - 16:54 #3
Har lige oploadet siden på:

http://k-s-klub.subnet.dk/index.htm

Sådan fungerer boblerne i baggrunden hvis man lægger koden direkte ind på siden, men det fylder for meget at gøre det på alle sider, derfor ville jeg gerne have det lavet om til et script.

Avatar billede jakoba Nybegynder
14. marts 2001 - 17:20 #4
engrobs svar er til din normale body tag. så det er linien lige foran scriptet:

<BODY marginwidth=10 marginheight=10 leftmargin=10 topmargin=10>

der skal udvides til:

<BODY marginwidth=10 marginheight=10 leftmargin=10 topmargin=1 0onLoad=\"MouseBubbles()\">

samtidig bør du fjerne linie

MouseBubbles();

nederst i scriptet ( linien foran  \"// -->\" )

Med de to rettelser kan du lægge resten af scriptkoden i en .js fil så det ikke fulder i koden.

mvh JakobA
Avatar billede jakoba Nybegynder
14. marts 2001 - 17:22 #5
nullet fra  topmargin=10  har møvet sig over til  onload=\"MouseBubbles()\". Flyt det tilbage igen.
Avatar billede lch Nybegynder
14. marts 2001 - 17:37 #6
Jeg har gjort som du foreslår, men nej. Jeg tror jeg udstråler noget anti javascript etellerandet *GG*......

Som du kan se, så har jeg husket scriptet i head:

<SCRIPT LANGUAGE=\"JavaScript1.2\" SRC=\"scripts/bobler.js\">
</SCRIPT>
<LINK REL=\"stylesheet\" HREF=\"scripts/style.css\">
<!-- Minus AutoDato -->
<title>Koldkær Svømmeklub</title>
</head>

<BODY marginwidth=10 marginheight=10 leftmargin=10 topmargin=10 onLoad=\"MouseBubbles()\">
<div style=\"position:relative\">

Avatar billede jakoba Nybegynder
14. marts 2001 - 17:54 #7
Nøppe. Det er bare om at få så meget øvelse at du har bagland til at gætte.
kikker videre.
Avatar billede jakoba Nybegynder
15. marts 2001 - 00:11 #8
Du har lagt scriptet i in  .js fil  men du har ikke fjernet det fra  .html filen, det bør du.

og dit <body tag skal ændres til
<BODY marginwidth=10 marginheight=10 leftmargin=10 topmargin=10 onLoad=\"MouseBubbles()\">

jeg gætter du blot har glemt at uploade den rettede .html fil :)

I din fil  bobler.js  vil jeg anbefale at du ændrer i næstsidste linie:
setTimeout(\'MouseBubbles()\',10);
så der står
setTimeout(\'MouseBubbles()\',30);
scriptet bruger meget computerkraft og overbelaster min 350MHz computer. Det kan godt være en grud til det ikke kører som det skal.

mvh JakobA
Avatar billede lch Nybegynder
15. marts 2001 - 09:14 #9
JakobA-> Jeg er klar over at scriptet ikke er fjernet fra htmldokumentet som jeg gav linket til. Det var bare for at vise hvordan det skulle se ud når det blev sat op på den måde som det var forklaret fra ophavsmanden til scriptet. Jeg har efterfølgende lavet de forskellige rettelser på min egen maskine og det virker ikke. Har sendt en mail til ham der har lavet scriptet. Det kan jo være at jeg er heldig at han svarer tilbage.
Avatar billede jakoba Nybegynder
16. marts 2001 - 21:08 #10
Med røde kinder må jeg fortælle at det råd jeg gav ver forkert.
scriptet skal IKKE ligge i <head men i <body , lige efter din <body kommando.

<BODY marginwidth=10 marginheight=10 leftmargin=10 topmargin=10 onLoad=\"MouseBubbles()\">
<SCRIPT LANGUAGE=\"JavaScript1.2\" SRC=\"scripts/bobler.js\">
</SCRIPT>

jeg har lagt det op på:
http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp56682.html
jeg ser ingen grund til det ikke skulle virke med dit oprindelige script, men hvis der er problemer så gram et af dem på siden (husk at rette billedfilens filnavn øverst i scriptet)

mvh JakobA
Avatar billede lch Nybegynder
17. marts 2001 - 13:46 #11
Det skal du da ikke have røde kinder over. Det er da positivt for mig, at nogen der er skrappe også kan indrømme at de kan fejle en gang i mellem. :)

Har fået svar fra ham der har lavet scriptet. Ser hvad der virker.
Avatar billede lch Nybegynder
17. marts 2001 - 14:15 #12
Nu virker det! Juhu.......

Er ikke helt klar over hvad ændringen er, men onload i BODY blev fjernet. Han vedhæftede scriptet på ny, men der er ingen ændringer bortset fra at
MouseBubbles();
blev sat ind igen sidst i scriptet.

<BODY marginwidth=10 marginheight=10 leftmargin=10 topmargin=10>
<script language=\"JavaScript\" src=\"scripts/mousebubbles.js\"></script>

Han skriver bare <script language=\"JavaScript\". Andre gange skriver man 1.2. Hvad er forskellen??
Avatar billede jakoba Nybegynder
17. marts 2001 - 17:11 #13
Når der står et versionsnummer efter javascript vil drowsere der har implementeret en tidligere (lavere tal) version ignorere scriptet. Det kan være nyttigt hvis et script benytter noget der kun findes i den seneste version.
fx:

<script language=\'javascript\'>

function testOmKunCifre( talstreng ) {
  var cifre = \"0123456789\";
  for ( var i=0; talstreng.length>i; i++ )
    if ( cifre.indexOf(talstreng.substr(i,1)==-1 ) return false;
  return true;
}; //end testOmKunCifre( string )

// ovenstående virker i enhver browser med javascript; men det tager sin
// tid med alle de variabler og strengoperationer.

</script>
<script language=\'javascript1.2\'>

// fra version 1.2 lærte javascript at bruge \"Regular Expressions\"
// så vi kan overskrive funktionen ovenfor med en anden der gør det samme
//men gør det meget hurtigere:

function testOmKunCifre( talstreng ) {
  return /\\D/.test(talstreng);
}; //end testOmKunCifre( string )

</script>

tak for points.

mvh JakobA
Avatar billede jakoba Nybegynder
17. marts 2001 - 17:29 #14
Nå ja. Hvis du retter fejlene virker de end:
i øverste dcript. tilføjet slutparentes:
    if ( cifre.indexOf(talstreng.substr(i,1))==-1 ) return false;
i nederste script. inverter resultat med !
  return !/\\D/.test(talstreng);
Avatar billede lch Nybegynder
17. marts 2001 - 19:03 #15
Har lige været ude hos en veninde og gået ind på klubbens hjemmeside, men boblerne virker ikke på hendes maskine. Hun har IE 4.0, er det derfor?
Avatar billede jakoba Nybegynder
17. marts 2001 - 19:15 #16
det du har på http://k-s-klub.subnet.dk/index.htm
virker fint på NS4.7 (men kun i de lyseblå områder, ikke over tabellerne)
virker ikke i NS6, men det er også meget at forlange.
virker på min IE4.0, (det varer et øjeblik før det går igang).

Så hvis det ikke virker på hendes IE4 er det noget mere esoterisk der er galt.
Avatar billede lch Nybegynder
17. marts 2001 - 19:17 #17
Nu bruger du fine ord. *G* Hvad betyder esoterisk???
Avatar billede lch Nybegynder
17. marts 2001 - 19:19 #18
Never mind. Slog det op i fremmedordbogen!
Avatar billede lch Nybegynder
17. marts 2001 - 19:23 #19
Jeg kan godt se at det er problematisk at bruge sådanne scripts. Men lidt sjov skal der jo være.
Avatar billede lch Nybegynder
17. marts 2001 - 19:28 #20
Har lige snakket med min veninde igen. Hun har nu været inde på min hjemmeside og den virker fint bortset fra at hun ikke kan spille det lille spil jeg har på siden.
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