Javascript (Schnee)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Javascript (Schnee)

    Hallo,


    Ich habe mir pünktlich zur weihnachszeit mal die vielleicht nicht so beliebten schneeflocken eingebaut.


    Mein problem ist nur das im IE alles geht im Firefox hängen die flocken links oben einfach fest.

    Wenn man im Firefox dann versucht oben links die schnee flocken zu makieren merkt man das dort wohl ein kästchen ist, dass aber unsichtbar ist und scheinbar nur im firefox angezeigt wird.

    Hier das Javascript :

    PHP-Code:
    var no 25;                   // number of snowflakes
    var speed 10;                // the smaler, the faster snowflakes
    var snowflake "snow.gif";    // picture source
    var ns4b = (document.layers) ? 0;   // Netscape4.x
    var b4up = (document.all) ? 0;      // MSIE4, Opera5, Netccape5
    var dxxpyp;                // coordinate and position variables
    var amstxsty;              // amplitude and step variables
    var snowobj;
    var 
    idoc_width 1000doc_height 800;

    if (
    ns4b) {
       
    doc_width  self.innerWidth;
       
    doc_height self.innerHeight;
    } else if (
    b4up) {
       
    doc_width  document.body.clientWidth;
       
    doc_height document.body.clientHeight;
    } else {
       
    b4up 1;                   // 800x600 screen-default
    }// if

    dx = new Array();
    xp = new Array();
    yp = new Array();
    am = new Array();
    stx = new Array();
    sty = new Array();
    snowobj = new Array();

    for (
    i=0i<no; ++i) {         // iterate for every snowflake
       
    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 (ns4b) {                           // set layers
          
    document.write("<LAYER NAME=\"flake"+"\" LEFT=\"15\" "
          
    "TOP=\"15\" VISIBILITY=\"show\"><IMG SRC=\""
          
    snowflake +"\" BORDER=0></LAYER>");
       } else if (
    b4up) {
          
    document.write("<DIV ID=\"flake"+"\" STYLE=\""
          
    "position:absolute; z-index:"+"; visibility:visible; "
          
    "top:15px; left:15px;\"><IMG SRC=\""snowflake
          
    "\" BORDER=0></DIV>");
          
    snowobj[i] = eval (document.getElementById("flake"+i).style);
       }
    //if
    }//for

    function snowNS() {            // Netscape4 main animation function
       
    for (i=0i<no; ++i) {      // iterate for every snowflake
          
    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();
          }
    //if
             
    dx[i] += stx[i];
             
    document.layers["flake"+i].top yp[i];
             
    document.layers["flake"+i].left xp[i
                + 
    am[i]*Math.sin(dx[i]);
          }
    //for
       
    setTimeout("snowNS()"speed);
    }
    //snowNS

    function snowDocument() {      // MSIE4, Opera5, Netscape5 main
       
    for (i=0i<no; ++i) {      // iterate for every flake
          
    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();
          }
    //if
          
    dx[i] += stx[i];
          
    snowobj[i].top  yp[i];
          
    snowobj[i].left xp[i] + am[i]*Math.sin(dx[i]);
       }
    //for
       
    setTimeout("snowDocument()"speed);
    }
    //snowDocument

    if (ns4b) {                   // Netscape4
       
    snowNS();
    } else if (
    b4up) {            // MSIE4, Opera5, Netscape5
       
    snowDocument();
    }
    //if 
    Habe in meinem Code mal geguckt und wenn ich das hier entferne

    PHP-Code:
     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                "http://www.w3.org/TR/html4/strict.dtd"

    gehen die schneeflocken aber dafür zerhaut es die halbe seite bzw die formatierung geht verloren.

    siehe hier :

    Klick


    weiss jemand woran das liegt?


    danke

    MFG

  • #2
    bei mir im Firefox geht es.

    Vll. hat dein FX noch diesen Bug https://bugzilla.mozilla.org/show_bu...en__&id=330494
    Zuletzt geändert von Benny-one; 18.12.2006, 00:27.
    Sunshine CMS
    BannerAdManagement
    Borlabs - because we make IT easier
    Formulargenerator [color=red]Neu![/color]
    Herkunftsstatistik [color=red]Neu![/color]

    Kommentar


    • #3
      Original geschrieben von Benny-one
      bei mir im Firefox geht es.

      Vll. hat dein FX noch diesen Bug https://bugzilla.mozilla.org/show_bu...en__&id=330494
      ehrlich?

      auf der gesammten seite verteilt schneihen die flocken?


      wie kann ich den den bug entfernen ?

      danke

      Kommentar


      • #4
        Aktualisiere dein Firefox. Ich habe Version 2.0.

        Sunshine CMS
        BannerAdManagement
        Borlabs - because we make IT easier
        Formulargenerator [color=red]Neu![/color]
        Herkunftsstatistik [color=red]Neu![/color]

        Kommentar


        • #5
          Original geschrieben von Benny-one
          Aktualisiere dein Firefox. Ich habe Version 2.0.

          ne....


          habe auch den Firefox 2.

          Du hast ein screenshot von der test datei gemacht in der ich das schon entfernt habe :

          PHP-Code:
           <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd"

          Habe wohl den Link vergessen in dem ich das noch drinne habe..


          Hier der Link zur aktuellen version die im IE geht und im Firefox das kästchen oben links hat und nicht geht.

          KLICK


          dort siehst du das die flocken links oben in einem unsichtbaren kästchen hängen bleiben. nur komischer weise verschwindet das sobald ich den oben angezeigeten code entferne.


          MFG

          Kommentar


          • #6
            Wieso nimmst du net den Code aus der Testdatei, der funktioniert hat?!

            Code:
            var ns4b = (document.layers) ? 1 : 0;   // Netscape4.x
            var b4up = (document.all) ? 1 : 0;      // MSIE4, Opera5, Netccape5
            Kick den Netscape 4 da raus, der Firefox wird als Netscape 4 erkannt, deswegen scheint das auch nicht zu funzen.
            Sunshine CMS
            BannerAdManagement
            Borlabs - because we make IT easier
            Formulargenerator [color=red]Neu![/color]
            Herkunftsstatistik [color=red]Neu![/color]

            Kommentar


            • #7
              Original geschrieben von Benny-one
              Wieso nimmst du net den Code aus der Testdatei, der funktioniert hat?!

              Code:
              var ns4b = (document.layers) ? 1 : 0;   // Netscape4.x
              var b4up = (document.all) ? 1 : 0;      // MSIE4, Opera5, Netccape5
              Kick den Netscape 4 da raus, der Firefox wird als Netscape 4 erkannt, deswegen scheint das auch nicht zu funzen.

              die test datei wird zwar angezeigt bzw der schnee geht aber dafür ist alles zerhauen die schrift dicke und die gesammte formatierung.


              Wie soll ich das denn raus kicken ?

              einfach diese zeile im script löschen?

              PHP-Code:
              var ns4b = (document.layers) ? 0;   // Netscape4.x 

              Kommentar


              • #8
                Mach das hier mal so
                Code:
                 
                // MSIE4, Opera5, Netscape5
                   snowDocument();
                Den anderen Kram da raus und mal testen ob es geht.

                Vielmehr irritiert mich, dass es die selbe js Datei ist, die du verwendest, aber beim anderen funktioniert es. Kann es sein, dass du irgendwo irgendwie etwas überschreibst?
                Sunshine CMS
                BannerAdManagement
                Borlabs - because we make IT easier
                Formulargenerator [color=red]Neu![/color]
                Herkunftsstatistik [color=red]Neu![/color]

                Kommentar


                • #9
                  Original geschrieben von Benny-one
                  Mach das hier mal so
                  Code:
                   
                  // MSIE4, Opera5, Netscape5
                     snowDocument();
                  Den anderen Kram da raus und mal testen ob es geht.

                  Vielmehr irritiert mich, dass es die selbe js Datei ist, die du verwendest, aber beim anderen funktioniert es. Kann es sein, dass du irgendwo irgendwie etwas überschreibst?

                  also ich habe mal ne datei gemacht die nur aus dem html grundgerüst besteht, nur komischerweise geht das dort........ auch im Firefox.

                  KLICK


                  Das heisst es leigt an meiner datei in der ich den code eingebaut habe, ich habe schon mir das ja schon gedacht das wird an dem unsichbaren kästchen liegen das entsteht indem ich das mit dem "DOCTYPE" über <html> schreibe. Nur wenn ich das lösche geht ja meine formatierung verloren , und das verstehe ich nicht so ganz. warum passirt das denn dann??

                  Kommentar


                  • #10
                    Trial&Error. Bau nach und nach dein Design ein und so kannst du feststellen, wann es nicht mehr geht und das Problem beheben.
                    Sunshine CMS
                    BannerAdManagement
                    Borlabs - because we make IT easier
                    Formulargenerator [color=red]Neu![/color]
                    Herkunftsstatistik [color=red]Neu![/color]

                    Kommentar


                    • #11
                      Re: Javascript (Schnee)

                      Probier's mal mit
                      Code:
                               document.layers["flake"+i].top = yp[i] + 'px';
                               document.layers["flake"+i].left = xp[i]
                                  + am[i]*Math.sin(dx[i]) + 'px';
                      und
                      Code:
                            snowobj[i].top  = yp[i] + 'px';
                            snowobj[i].left = xp[i] + am[i]*Math.sin(dx[i]) + 'px';
                      Es ist in den jeweiligen Zeilen das + 'px' dazugekommen.

                      Wenn du die Doctype-Angabe weglässt, dann wird die Seite im Quirksmode gerendert, und da braucht er für die Werte von top und left nicht die Einheit (Pixel bzw. px). Wenn du einen Doctype angibst, wird im Standards-Compliant-Mode gerendert, und da sind diese Angaben erforderlich.
                      Hilfreich ist in solchen Fällen, einen Blick in die Firefox Error-Console zu werfen (Tools -> Error Console), vorausgesetzt du hast die mitinstalliert.
                      hopka.net!

                      Kommentar


                      • #12
                        Re: Re: Javascript (Schnee)

                        Original geschrieben von Hopka
                        [B]Probier's mal mit
                        Code:
                                 document.layers["flake"+i].top = yp[i] + 'px';
                                 document.layers["flake"+i].left = xp[i]
                                    + am[i]*Math.sin(dx[i]) + 'px';
                        und
                        Code:
                              snowobj[i].top  = yp[i] + 'px';
                              snowobj[i].left = xp[i] + am[i]*Math.sin(dx[i]) + 'px';
                        Es ist in den jeweiligen Zeilen das + 'px' dazugekommen.
                        Super!!!

                        Das hat funktioniert.Nur sind die Flocken im Firefox noch immer nicht in der Mitte der Seite.

                        KLICK

                        Kann man das noch abändern das die auch im Firefo in der Mittte sind?


                        MFG

                        Kommentar

                        Lädt...
                        X