Avatar billede sp Nybegynder
08. januar 2002 - 18:22 Der er 8 kommentarer og
1 løsning

Sne-effekt skal forsvinde igen efter 10 sekunder.

Når man besøger min hjemmeside, skal denne sne-effekt forsvinde efter 10 sekunder, ellers tror jeg at jeg mister besøg.

Hvorledes kan jeg gøre dette?

mvh
Søren Peter

<body>
<script language=\"JavaScript1.2\">

/*
Snow Effect Script
Submitted by Altan d.o.o. (snow@altan.hr, http://www.altan.hr/snow/index.html)
Permission granted to Dynamicdrive.com to feature script in archive
For full source code to this script, visit http://dynamicdrive.com
*/
 

  //Configure below to change URL path to the snow image
  var snowsrc=\"fane.gif\"
  // Configure below to change number of snow to render
  var no = 10;

  var ns4up = (document.layers) ? 1 : 0;  // browser sniffer
  var ie4up = (document.all) ? 1 : 0;
  var ns6up = (document.getElementById&&!document.all) ? 1 : 0;

  var dx, xp, yp;    // coordinate and position variables
  var am, stx, sty;  // amplitude and step variables
  var i, doc_width = 10, doc_height = 10;
 

  if (ns4up||ns6up) {
    doc_width = self.innerWidth;
    doc_height = self.innerHeight;
  } else if (ie4up) {
    doc_width = document.body.clientWidth;
    doc_height = document.body.clientHeight;
  }

  dx = new Array();
  xp = new Array();
  yp = new Array();
  am = new Array();
  stx = new Array();
  sty = new Array();
 
  for (i = 0; i < no; ++ i) { 
    dx[i] = 0;                        // set coordinate variables
    xp[i] = Math.random()*(doc_width-50);  // set position variables
    yp[i] = Math.random()*doc_height;
    am[i] = Math.random()*20;        // set amplitude variables
    stx[i] = 0.02 + Math.random()/10; // set step variables
    sty[i] = 0.7 + Math.random();    // set step variables
    if (ns4up) {                      // set layers
      if (i == 0) {
        document.write(\"<layer name=\\\"dot\"+ i +\"\\\" left=\\\"15\\\" top=\\\"15\\\" visibility=\\\"show\\\"><a href=\\\"http://dynamicdrive.com/\\\"><img src=\'\"+snowsrc+\"\' border=\\\"0\\\"></a></layer>\");
      } else {
        document.write(\"<layer name=\\\"dot\"+ i +\"\\\" left=\\\"15\\\" top=\\\"15\\\" visibility=\\\"show\\\"><img src=\'\"+snowsrc+\"\' border=\\\"0\\\"></layer>\");
      }
    } else if (ie4up||ns6up) {
      if (i == 0) {
        document.write(\"<div id=\\\"dot\"+ i +\"\\\" style=\\\"POSITION: absolute; Z-INDEX: \"+ i +\"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\\\"><a href=\\\"http://dynamicdrive.com\\\"><img src=\'\"+snowsrc+\"\' border=\\\"0\\\"></a></div>\");
      } else {
        document.write(\"<div id=\\\"dot\"+ i +\"\\\" style=\\\"POSITION: absolute; Z-INDEX: \"+ i +\"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\\\"><img src=\'\"+snowsrc+\"\' border=\\\"0\\\"></div>\");
      }
    }
  }
 
  function snowNS() {  // Netscape main animation function
    for (i = 0; i < no; ++ i) {  // iterate for every dot
      yp[i] += sty[i];
      if (yp[i] > doc_height-50) {
        xp[i] = Math.random()*(doc_width-am[i]-30);
        yp[i] = 0;
        stx[i] = 0.02 + Math.random()/10;
        sty[i] = 0.7 + Math.random();
        doc_width = self.innerWidth;
        doc_height = self.innerHeight;
      }
      dx[i] += stx[i];
      document.layers[\"dot\"+i].top = yp[i];
      document.layers[\"dot\"+i].left = xp[i] + am[i]*Math.sin(dx[i]);
    }
    setTimeout(\"snowNS()\", 10);
  }

  function snowIE_NS6() {  // IE and NS6 main animation function
    for (i = 0; i < no; ++ i) {  // iterate for every dot
      yp[i] += sty[i];
      if (yp[i] > doc_height-50) {
        xp[i] = Math.random()*(doc_width-am[i]-30);
        yp[i] = 0;
        stx[i] = 0.02 + Math.random()/10;
        sty[i] = 0.7 + Math.random();
        doc_width = ns6up?window.innerWidth : document.body.clientWidth;
        doc_height = ns6up?window.innerHeight : document.body.clientHeight;
      }
      dx[i] += stx[i];
      if (ie4up){
      document.all[\"dot\"+i].style.pixelTop = yp[i];
      document.all[\"dot\"+i].style.pixelLeft = xp[i] + am[i]*Math.sin(dx[i]);
      }
      else if (ns6up){
      document.getElementById(\"dot\"+i).style.top=yp[i];
      document.getElementById(\"dot\"+i).style.left=xp[i] + am[i]*Math.sin(dx[i]);
      } 
    }
    setTimeout(\"snowIE_NS6()\", 10);
  }

  if (ns4up) {
    snowNS();
  } else if (ie4up||ns6up) {
    snowIE_NS6();
  }




</script>
</body>
Avatar billede jakoba Nybegynder
08. januar 2002 - 18:30 #1
du laver den lille if sætning forneden om
fra:

  if (ns4up) {
    snowNS();
  } else if (ie4up||ns6up) {
    snowIE_NS6();
  }

til:

var slukIgen = false;
setTimeout( \"slukIgen=true\", 10000 );
  if (ns4up) {
    snowNS();
  } else if (ie4up||ns6up) {
    snowIE_NS6();
  }

og indsæt linien
  if ( slukIgen ) return;

forrest i de to funktioner snowNS() og snowIE_NS6()

mvh JakobA
Avatar billede sp Nybegynder
08. januar 2002 - 18:40 #2
De stopper men forsvinder ikke
Avatar billede sp Nybegynder
08. januar 2002 - 20:56 #3
Ka du lave sådan at de er væk fra siden?
Avatar billede jakoba Nybegynder
09. januar 2002 - 11:09 #4
Ja, men vi får brug for en ekstra funktion:

function rydSne() {  // fjerner alle snefnug fra vinduet
    for (i = 0; i < no; ++ i) {  // iterate for every dot
        if ( ns4up ) {  // na4       
            document.layers[\"dot\"+i].visibility = \'hidden\';
        } else
        if ( document.getElementById ) {  // dom-compliant browsere
            document.getElementById(\"dot\"+i).style.visibility = \'hidden\';
        } else {  // ie4
            document.all[\"dot\"+i].style.visibility = \'hidden\';
        }
    }
}; //end rydSne()

og indsætte en anden linie foran i de 2 funktioner:
    if ( slukIgen ) return rydSne();
forrest i de to funktioner snowNS() og snowIE_NS6()

mvh JakobA
Avatar billede sp Nybegynder
09. januar 2002 - 14:26 #5
Så virker det
Avatar billede sp Nybegynder
19. januar 2002 - 17:10 #6
Hej igen.

Jeg håber du kan hjælpe mig med et problem jeg er løbet ind i.

På min testside er der rigeligt med flyvende snefnug som er spredt, men den side hvor jeg skal køre scriptet, kommer der ca. 8-10 fnug hvorefter den holder en pause på ca. 10 sek. Det er ikke nok. Der skal ligesom på testsiden, flyve masser af fnug.
Det er ikke nok at ændre på
  var no = 10;

For så viser det sig bare som en dyne med endnu flere fnug i.

mvh
Søren Peter
Avatar billede jakoba Nybegynder
21. januar 2002 - 08:08 #7
Selvom det der snevejsrssvript er lille æder det masser af CPU kraft.

Så hvis computeren skal lave noget andet (åbne en plugin eller lign) vil det kunne ses meget tydeligt i den måde snefnuggene daler. de vil stoppe eller hakke i det.

Det eneste du rigtig kan gøre er at undgå plugins (lyd, flash, java-apletter) på siden eller sætte antallet af snefnug ned.

mvh JakobA
Avatar billede sp Nybegynder
24. januar 2002 - 17:38 #8
Jo tak for det.
Jeg har flyttet det til en anden side. Det ser ud til at virke bedre.
Hvor har du lært alt det du kan med javascript??:-)

mvh
Søren Peter
Avatar billede sp Nybegynder
24. januar 2002 - 20:00 #9
Jeg skal nok forklare det lidt bedre.
Det jeg leder efter, er en der forstørrer et billede så det ligger som et lag ovenpå der er lidt større..
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