Avatar billede tipsen Nybegynder
16. november 2003 - 14:11 Der er 10 kommentarer og
1 løsning

Enable/Disable snevejrs script

Hej eksperter

Jeg hader ellers normalt den slags ligegyldige "gimmicks" som "javascript-snevejret" jo er - men lige til formålet er det faktisk ok!

Jeg vil dog gerne give folk en mulighed for at slå scriptet fra, så de kan se websitet uden irriterende snevejr, hvis de skulle foretrække dette!

Så hvordan laver jeg nemmest et lille billede som måske forestiller et snefnug med og uden forbudt skilt på, som samtidig virker som tænd-sluk knap for snevejret?

Håber I kan hjælpe!
Avatar billede tipsen Nybegynder
16. november 2003 - 14:12 #1
Et link til det omtalte script vil sikkert hjælpe:

http://www.dynamicdrive.com/dynamicindex3/snow.htm
Avatar billede tipsen Nybegynder
16. november 2003 - 14:19 #2
...Er det forøvrigt ikke også muligt, at smide scriptet i en ekstern fil, som så hentes vha. <script...src="fil.js"></script> ?
Avatar billede casper_skovgaard Nybegynder
17. november 2003 - 09:47 #3
jeg har lavet en del om i scriptet, så jeg er ikke sikker på om det virker i netscape mere. Det må du selv lige teste :)

Løsningen består af to filer; en html fil og en javascript fil. Filerne er lagt i de efterfølgende svar.

Du må lige sige til hvis du har brug for en yderligere forklaring til løsningen :)
Avatar billede casper_skovgaard Nybegynder
17. november 2003 - 09:47 #4
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
    <!-- Created by TopStyle Pro Trial Version - www.bradsoft.com -->
    <title></title>   
    <script type="text/javascript" >
        //Configure below to change URL path to the snow image
        var snowsrc="snow.gif"
        // Configure below to change number of snow to render
        var no = 10;
       
    </script>
</head>

<body onload="snowStart();">
    <script src="snow.js" type="text/javascript" ></script>
<br />
<br />
<br />
<br />
Her sner det!
<br />
<span onclick="snowStart();"><img src="on.gif" alt="on" /></span>&nbsp;&#124;&nbsp;<span onclick="snowStop();"><img src="off.gif" alt="off" /></span>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />

</body>
</html>
Avatar billede casper_skovgaard Nybegynder
17. november 2003 - 09:47 #5
/******************************************
* Snow Effect Script- By Altan d.o.o. (snow@altan.hr, http://www.altan.hr/snow/index.html)
* Visit Dynamic Drive (http://www.dynamicdrive.com/) for full source code
* Modified Dec 31st, 02' by DD. This notice must stay intact for use
******************************************/

  var snow = false;
 
  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 = 800, doc_height = 600;
 
  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: hidden; 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: hidden; TOP: 15px; LEFT: 15px;\"><img src='"+snowsrc+"' border=\"0\"><\/div>");
      }
    }
  }

  function snowStart(){
  if ( snow == false){
  snow = true;
    for (i = 0; i < no; ++ i) {
        dot = document.getElementById( 'dot' + i);
        dot.style.visibility = 'visible';
    }

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

  function snowStop(){
  if( snow == true){
  snow = false;
    for (i = 0; i < no; ++ i) {
        dot = document.getElementById( 'dot' + i);
        dot.style.visibility = 'hidden';
    }
  }}

  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
    if (snow == true){
    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);
    }
  }
Avatar billede casper_skovgaard Nybegynder
19. november 2003 - 10:53 #6
hva' så, sner det eller hvad???
Avatar billede tipsen Nybegynder
19. november 2003 - 13:43 #7
Jeg har faktisk haft lidt svært ved at få det til at fungere - specielt, hvis det også skal fungere i Mozilla og Opera som det oprindelige gjorde...

Det går hen og bliver ufatteligt langsomt og tager ekstreme mængder processorkraft på min 1200MhZ... - det holder ikke rigtigt... :-(
Avatar billede casper_skovgaard Nybegynder
19. november 2003 - 15:14 #8
mærkeligt at det skulle tage mere processor kraft end den originale version. Jeg har ikke ændret på det javascript som viser billederne kun på hvordan den startes og stoppes...
Avatar billede tipsen Nybegynder
19. november 2003 - 15:47 #9
Det kan godt være, at det er mine modifikationer for at tilpasse start og slut funktionerne til alle browsere, der gør at det er processorkrævende .... :-(

Tror bare jeg ændrer det, så det "bare" fungerer i IE... - altså fjerner alt overflødig kode... - det er godt nok til formålet...
Avatar billede tipsen Nybegynder
19. november 2003 - 15:47 #10
Jeg siger hvertfald tak for hjælpen!
Avatar billede casper_skovgaard Nybegynder
19. november 2003 - 16:01 #11
:)
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