Mona: Fallende Objekte gehen nicht über die ganze Seite!

Guten Tag an alle!

Ich versuche schon die ganze Zeit, dass der Schnee auf der ganzen Seite fällt, aber er fällt nur oben und dann bis zur Mitte

Was hab ich falsch gemacht?

Hier der Code:

<html>
<head>

<script language="JavaScript" type="text/javascript">

var snowmax = 35;

var snowcolor = new Array('#eeeeff', '#ffffdd', '#eeeedd', '#ffffff');

var snowtype = new Array('Arial Black', 'Arial Narrow', 'Times', 'Comic Sans MS');

var snowletter = '*';

var sinkspeed = 0.3;

var snowmaxsize = 48;

var snowminsize = 10;

var snowingzone = 1;

var snow = new Array();
var marginbottom;
var marginright;
var timer;
var i_snow = 0;
var x_mv = new Array();
var crds = new Array();
var lftrght = new Array();
var browserinfos = navigator.userAgent;
var ie5 = document.all && document.getElementById && !browserinfos.match(/Opera/);
var ns6 = document.getElementById && !document.all;
var opera = browserinfos.match(/Opera/);
var browserok = ie5 || ns6 || opera;

function randommaker(range)
{
return Math.floor(range * Math.random());
}

function initsnow()
{
if (ie5 || opera)
{
marginbottom = document.body.clientHeight;
marginright = document.body.clientWidth;
}
else if (ns6)
{
marginbottom = window.innerHeight;
marginright = window.innerWidth;
}

var snowsizerange = snowmaxsize - snowminsize;

for (var i = 0; i <= snowmax; i++)
{
crds[i] = 0;
lftrght[i] = Math.random() * 15;
x_mv[i] = 0.03 + Math.random() / 10;
snow[i] = document.getElementById('s' + i);
snow[i].style.fontFamily = snowtype[randommaker(snowtype.length)];
snow[i].size = randommaker(snowsizerange) + snowminsize;
snow[i].style.fontSize = snow[i].size;
snow[i].style.color = snowcolor[randommaker(snowcolor.length)];
snow[i].sink = sinkspeed * snow[i].size / 5;

if (snowingzone == 1)
snow[i].posx = randommaker(marginright - snow[i].size);

if (snowingzone == 2)
snow[i].posx = randommaker(marginright / 2 - snow[i].size);

if (snowingzone == 3)
snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 4;

if (snowingzone == 4)
snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 2;

snow[i].posy = randommaker(2 * marginbottom - marginbottom - 2 * snow[i].size);
snow[i].style.left = snow[i].posx;
snow[i].style.top = snow[i].posy;
}

movesnow();
}

function movesnow()
{
for (var i = 0; i <= snowmax; i++)
{
crds[i] += x_mv[i];
snow[i].posy += snow[i].sink;
snow[i].style.left = snow[i].posx + lftrght[i] * Math.sin(crds[i]);
snow[i].style.top = snow[i].posy;

if ((snow[i].posy >= (marginbottom - 2 * snow[i].size)) || (parseInt(snow[i].style.left) > (marginright - 3 * lftrght[i])))
{
if (snowingzone == 1)
snow[i].posx = randommaker(marginright - snow[i].size);

if (snowingzone == 2)
snow[i].posx = randommaker(marginright / 2 - snow[i].size);

if (snowingzone == 3)
snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 4;

if (snowingzone == 4)
snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 2;

snow[i].posy = 0;
}
}

var timer = setTimeout('movesnow();', 20); //Wert von 10 bis 100
}

for (var i = 0; i <= snowmax; i++)
document.write('<span id="s' + i +'" style="position: absolute; top: -' + snowmaxsize + '">' + snowletter + '</span>');

if (browserok)
window.onload = initsnow;

</script>

</head>
<body>

</body>
</html>

  1. Liebe Mona,

    Ich versuche schon die ganze Zeit, dass der Schnee auf der ganzen Seite fällt, aber er fällt nur oben und dann bis zur Mitte

    bei mir fällt er über die ganze Seite.

    Was hab ich falsch gemacht?

    Du hast nicht verraten, in welchem Browser Du testest, und in welchen Browsern (ja, es gibt verschiedene!) Du dieses Problem beobachtest.

    Außerdem hast Du eine Frage zu JavaScript, nicht zu (X)HTML!

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Oh Verzeihung!

      Also ich verwenden hier Firefox.
      Welchen Browser hast du denn benutzt?

      Vielen Dank schonmal!

      1. Liebe Mona,

        Oh Verzeihung!

        Also ich verwenden hier Firefox.

        in welcher Version? Dass Anfänger einfach nicht verstehen, wann sie ausführlicher werden sollen... ts, ts, ts.

        Welchen Browser hast du denn benutzt?

        Ich habe das von Dir gepostete Code-Beispiel in eine lokale HTML-Datei gespeichert und in Firefox3, in IE6 (standalone), in IE7, Opera und Safari geöffnet. In allen Fällen tänzelten die Schneeflocken über die gesamte Fläche des jeweiligen Browserfensters. Mittels der Tastenkombination [STRG]+[A] konnte ich das besonders gut nachverfolgen.

        Wo ist Dein Problem? Hast Du einen Link, wo man das Ganze live in Aktion betrachten kann?

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Ach ja, alle Jahre wieder fällt der Schnee.
    Hat irgenwer einmal gezählt, wieviele Snowfall-Scripts es eigentlich gibt?
    Hier mein Vorschlag:
    var sinkspeed = 0.2;
    if ((snow[i].posy >= (marginbottom - 0 * snow[i].size))...
    <body style="overflow:hidden;">
    Fröhliche Weihnachten
    Ps: Probier lieber noch zwei, drei andere Scripts aus.
    AFAIK gibts da noch wesentlich ausgereiftere Sachen

    1. Ps: Probier lieber noch zwei, drei andere Scripts aus.

      oder verzichte ganz auf dieses zeug, es bringt langsame rechner oder benutzer des internet explorer 6 zum weinen :)

      1. [latex]Mae  govannen![/latex]

        Ps: Probier lieber noch zwei, drei andere Scripts aus.
        oder verzichte ganz auf dieses zeug, es bringt langsame rechner oder benutzer des internet explorer 6 zum weinen :)

        Nicht nur die. Wenn ich auf $website gehe, dann will ich die dort vorliegenden Informationen aufnehmen, sei es Text, seinen es Bilder oder Videos. Mit Schnee kann ich das nicht, weil dieser immer wieder meine Aufmerksamkeit vom eigentlichen Inhalt nimmt.
        Und wenn  es mir so geht, dann wird es vermutlich auch zumindest für einen Teil der potentiellen Besucher der hier gemeinten Website gelten. Es nervt einfach, spätestens nach ein paar Minuten.

        Cü,

        Kai

        --
        Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
        selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
        1. oder verzichte ganz auf dieses zeug, es bringt langsame rechner oder benutzer des internet explorer 6 zum weinen :)

          Nicht nur die. Wenn ich auf $website gehe, dann will ich die dort vorliegenden Informationen aufnehmen,

          Ja, du. Aber viele Seiten zeigen doch in erster Linie, was der Autor bereits kann, nicht, was seine Leser sehen wollen. Oder meinst du, eine an Dutzend verschiedenen Stellen blinkende Werbeseite erfreut den Leser?

          Gruß, Boomer

          1. Hi,

            Nicht nur die. Wenn ich auf $website gehe, dann will ich die dort vorliegenden Informationen aufnehmen,

            Ja, du. Aber viele Seiten zeigen doch in erster Linie, was der Autor bereits kann, nicht, was seine Leser sehen wollen.

            Du meinst also, die vorliegende Webseite soll nur zeigen, dass die Autorin ein fallende-Schneeflocken-Script aus dem Netz kopieren, und (mit Hilfe eines Forums) in ihre Seite einbauen kann?

            MfG ChrisB

            --
            „This is the author's opinion, not necessarily that of Starbucks.“
            1. Hi,

              Du meinst also, die vorliegende Webseite soll nur zeigen, dass die Autorin ein fallende-Schneeflocken-Script aus dem Netz kopieren, und (mit Hilfe eines Forums) in ihre Seite einbauen kann?

              Ja, genau:

              <body>

              </body>

              oder siehst du da was anderes ;-) Ich habe selbst doch auch meine "Neuentdeckungen" irgendwie in Webseiten untergebracht, ist doch normal.

              Boomer

              1. Hi!

                oder siehst du da was anderes ;-) Ich habe selbst doch auch meine "Neuentdeckungen" irgendwie in Webseiten untergebracht, ist doch normal.

                Richtig. Wenn Junior mit einem vollgeschmierten Blatt ankommt auf dem einfach alle Farben untergebracht sind die in dem Fingerferbkasten vorhanden waren, sagt man ja auch nicht: 'Son Mist will doch keiner sehen!'

                Will ich jedenfalls hoffen...

                Bei professionellen Websites von Magazinen, Nachrichten, ... moechte ich das aber wirklich nciht unbedingt sehen. Aber auch hier liegt die Betonung auf dem Wort 'ich'. Ich kann z.B. nem guten Scroller auch was abgewinnen. ;)

                --
                "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                      - T. Pratchett
                1. Richtig. Wenn Junior mit einem vollgeschmierten Blatt ankommt auf dem einfach alle Farben untergebracht sind die in dem Fingerferbkasten vorhanden waren, sagt man ja auch nicht: 'Son Mist will doch keiner sehen!'

                  wenn das vollgeschmierte blatt der schein für den lottosechser ist, möchte ich deine reaktion trotzdem sehen :D

      2. oder verzichte ganz auf dieses zeug, es bringt langsame rechner oder benutzer des internet explorer 6 zum weinen :)

        Ihr unromantischen Technokraten. Laßt dem Mädel doch den Spaß. Schaut lieber mal bei Ebay vorbei und kuckt euch an wie lange es dauert, bis sich wegen der ganzen Werbung und dem nervigen Flash-Gezappel bei denen mal eine Seite aufbaut. Das ist teilweise schon wirklich krass.
        Gruß psst...

        1. Schaut lieber mal bei Ebay vorbei und kuckt euch an wie lange es dauert, bis sich wegen der ganzen Werbung und dem nervigen Flash-Gezappel bei denen mal eine Seite aufbaut.

          in der letzten zeit mal bei tomshardware vorbeigeschaut? - DAS ist krass :D

          im übrigen: ebay nutze ich schon länger nicht mehr, aus genanntem grund :)

          1. in der letzten zeit mal bei tomshardware vorbeigeschaut? - DAS ist krass :D

            Ja, schon die Meldung "IE-Anwender weiter gefärdet ..." oder so ähnlich. Gerade, wenn man es liest, wird der Text weggezogen und durch einen anderen ersetzt.

            Ich denke, IE- Anwender sind durch Haarausfall gefährdet, weil sie sich dauernd die Haare raufen. Aber ansonsten ist wohl eher deren PC gefährdet.

            Boomer

  3. Bei dem Skript handelt es sich um ein Machwerk aus der Gehrig/Dudli Schmiede. Das waren DIE beiden Script-Programmierer, deren Werke zur Jahrtausendwende und kurz danach zu 50% Prozent nur im Internet Explorer liefen. Zeitgleich mit der Veröffentlichung des MSIE 6 haben die zwei dann ihre www.24fun.com Schießbude aufgegeben. :-p
    Man kann 4 snowingzones bestimmen:
    // Schneefallbereiche
    // 1 Es schneit auf der ganzen Seite
    // 2 Es schneit links
    // 3 Es schneit in der Mitte
    // 4 Es schneit rechts
    Das "Problem" bei dem Script ist, daß die Schneeflocken aufgrund der Programmierung nur innerhalb des Browserfensters fallen und nicht über das gesamte HTML-Dokument:
    // marginbottom = window.innerHeight;
    // marginright  = window.innerWidth;
    // marginbottom = document.body.clientHeight;
    // marginright  = document.body.clientWidth;
    Hab ich nun einen skrollbaren Bereich über die jeweilige  Fenstergröße hinweg, hört der Schnee auf zu fallen.
    Der Skript müßte also so geändert werden, daß der Schnee auch dann noch fällt, wenn ich auf der Seite nach unter skrolle.
    Hier könnten unsere Experten doch mal zeigen was sie drauf haben. Schließlich steht die Ehre des Forums auf denm Spiel.
    Also ran ans Werk, ihr Helden.
    :-p Gruß psst...

    1. Hier könnten unsere Experten doch mal zeigen was sie drauf haben. Schließlich steht die Ehre des Forums auf denm Spiel.

      Das Problem wurde schon vor rund vier Jahren im Forum gelöst. Und ich bin nun wahrlich kein Experte.

      Siechfred

      --
      Chancengleichheit bedeutet nicht, dass jeder einen Apfel pflücken kann, sondern dass der Zwerg eine Leiter bekommt.
      1. Das Problem wurde schon vor rund vier Jahren im Forum gelöst. Und ich bin nun wahrlich kein Experte.

        Bezogen auf den angesprochenen Skript müßte es eigentlich genügen, sich den Wert mittels der Script-Eigenschaft alert(document.height); anzeigen zu lassen und diesen dann an der entsprechenden Stelle einzusetzen. Zum Ausprobieren hab ich jetzt aber auch keine Lust, da der Thread ja mittlerweile eh tot ist. :-p
        Gruß psst...