JavaScript Schneeflocken!

Ihr wollt auf eurer Website Schneeflocken habe?!

Dann habe ich hier für euch einen Script!

Einfach auf eurer Website einfügen!
Ihr könnt die Größe, Geschwindigkeit,Anzahl,Farbe etc. der Schneeflocke/n ändern!

Code:
<!-- präsentiert von kostenlose-javascripts.de -->
<script type='text/javascript'>
<!--
// Anzahl der Schneeflocken (mehr als 30 - 40 nicht empfehlenswert)
var snowmax=35;

// Farben der Schneeflocken. Es können beliebig viele Farben angegeben werden
var snowcolor=new Array("#AAAACC","#DDDDFF","#CCCCDD","#F3F3F3","#F0FFFF");

// Fonts, welche die Schneeflocken erzeugen. Beliebig viele Fonts ergänzbar
var snowtype=new Array("Arial Black","Arial Narrow","Times","Comic Sans MS");

// Zeichen für die Schneeflocke (empfohlen: * )
var snowletter="*";

// Fallgeschwindigkeit (empfohlen sind Werte zwischen 0.3 bis 2)
var sinkspeed=0.6;

// Maximale Größe der Schneeflocken
var snowmaxsize=22;

// Minimale Größe der Schneeflocken
var snowminsize=8;

/* Schnee-Zone:
** 1 für überall, 2 für Schneefall nur auf der linken Seite
** 3 für Schneefall in der Mitte, 4 für Schneefall nur auf der rechten Seite */
var snowingzone=1;

/*
* Ab hier nichts mehr ändern *
*/

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) {
rand=Math.floor(range*Math.random());
return rand;
}

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 (i=0;i<=snowmax;i++) {
crds = 0;
lftrght = Math.random()*15;
x_mv = 0.03 + Math.random()/10;
snow=document.getElementById("s"+i);
snow.style.fontFamily=snowtype[randommaker(snowtype.length)];
snow.size=randommaker(snowsizerange)+snowminsize;
snow.style.fontSize=snow.size;
snow.style.color=snowcolor[randommaker(snowcolor.length)];
snow.sink=sinkspeed*snow.size/5;
if (snowingzone==1) {snow.posx=randommaker(marginright-snow.size);}
if (snowingzone==2) {snow.posx=randommaker(marginright/2-snow.size);}
if (snowingzone==3) {snow.posx=randommaker(marginright/2-snow.size)+marginright/4;}
if (snowingzone==4) {snow.posx=randommaker(marginright/2-snow.size)+marginright/2;}
snow.posy=randommaker(2*marginbottom-marginbottom-2*snow.size);
snow.style.left=snow.posx;
snow.style.top=snow.posy;
}
movesnow();
}

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

if (snow.posy>=marginbottom-2*snow.size || parseInt(snow.style.left)>(marginright-3*lftrght)){
if (snowingzone==1) {snow.posx=randommaker(marginright-snow.size);}
if (snowingzone==2) {snow.posx=randommaker(marginright/2-snow.size);}
if (snowingzone==3) {snow.posx=randommaker(marginright/2-snow.size)+marginright/4;}
if (snowingzone==4) {snow.posx=randommaker(marginright/2-snow.size)+marginright/2;}
snow.posy=0;
}
}
var timer=setTimeout("movesnow()",50);
}

for (i=0;i<=snowmax;i++) {
document.write("<span id='s"+i+"' style='position:absolute;top:-"+snowmaxsize+"px;'>"+snowletter+"</span>");
}
//-->
</script>
<br />
<div id="kostenlosejavascripts" align="center"><a href="Remix" title="Remix" target="_blank">Remix</a></div>
<br />
<script type="text/javascript">if (browserok) {initsnow();}</script>
<!-- präsentiert von kostenlose-javascripts.de -->
[Quelle: Kostenlose-Javascripts.de]
 
Ihr wollt auf eurer Website Schneeflocken habe?!

Dann habe ich hier für euch einen Script!

Was auch immer jemanden dazu verleiten könnte, solche Dinge zu posten, ich kann einfach nicht anders:

  • Wir sind bereits im 21. Jahrhundert angekommen. (Zumindest die meisten unter uns.)
  • Wenn du schon einfach Dinge von anderen kopierst, dann achte das nächste Mal darauf, auch wirklich korrekt zu kopieren. Angefangen mit den Whitespaces, über.. ach: sieh einfach selbst.
    Code:
    8c8
    < var snowcolor=new Array("#AAAACC","#DDDDFF","#CCCCDD","#F3F3F3","#F0FFFF");
    ---
    > var snowcolor=new Array("#AAAACC","#DDDDFF","#CCCCDD","#F3F3F3","#F0 FFFF");
    25c25
    < /*  Schnee-Zone:
    ---
    > /* Schnee-Zone:
    43c43
    < var ie5=document.all&&document.getElementById&&!browserinfos.match(/Opera/);
    ---
    > var ie5=document.all&&document.getElementById&&!browse rinfos.match(/Opera/);
    48c48
    < function randommaker(range) {		
    ---
    > function randommaker(range) { 
    50c50
    <     return rand;
    ---
    > 	return rand;
    64,66c64,66
    < 		crds[i] = 0;                      
    <     	lftrght[i] = Math.random()*15;         
    <     	x_mv[i] = 0.03 + Math.random()/10;
    ---
    > 		crds[i] = 0; 
    > 		lftrght[i] = Math.random()*15; 
    > 		x_mv[i] = 0.03 + Math.random()/10;
    90c90
    < 		
    ---
    > 
    108c108
    < <div id="kostenlosejavascripts" align="center"><a href="http://www.kostenlose-javascripts.de/dsl-anbieter-vergleich.html" title="Internetanbieter" target="_blank">Internetanbieter</a></div>
    ---
    > <div id="kostenlosejavascripts" align="center"><a href="Remix" title="Remix" target="_blank">Remix</a></div>
    Tja. Die fehlenden Whitespaces sind wohl an der falschen Stelle wieder aufgetaucht, vrgl: browse rinfos.match(/Opera/); und "#F0 FFFF". So wird das eher nicht funktionieren.
  • Oh. Und damit zum nächsten Punkt:
    Code:
    <a href="Remix" ...>Remix</a>
    Mit einer solchen Verlinkung wird mein Browser kaum was anfangen können.
  • Und damit zum Script an sich.
    1. Dieses Script ist eine wahre Müllhalde aus Sicht des globalen Namespaces. Hinsetzen und Lesen! Hier eine Liste mit allen Fehlern (naja, einen Namespace wirds immer brauchen, deswegen: Alle - 1)
      Code:
      browse, browserinfos, crds, document, i_snow, ie5, lftrght, marginbottom, marginright, navigator, ns6, rinfos, sinkspeed, snow, snowcolor, snowingzone, snowletter, snowmax, snowmaxsize, snowminsize, snowtype, timer, x_mv
    2. Diese Ausgeburt der Hölle arbeitet mit floating-point Pixeln. So zum Beispiel in solchen Ausdrücken: Math.sin(crds) + "px". Ich kann nicht sagen, dass mich das weiter überrascht, aber gutheissen kann ich sowas dennoch nicht. Für weitere Informationen: Lesen!
      [*] Inline-Scripts können unter anderem nicht asynchron geladen werden, aber das ist bestimmt nicht das gravierendste Geschwindigkeitsproblem.
      [*] I don't always JSLint my Code, but when I do:
      Too many errors. (40% scanned).
      Dieses Script macht Douglas Crockford traurig!
      [*] ...

    [*] Und nun zum wichtigsten Punkt: Wir sind bereits im 21. Jahrhundert und dieses Script hat einen Bart, einen langen Bart! Sagte ich schon? Gut. Wichtig!


Ob dies die richtige Art ist, deinen Fame (a.k.a Likes) zu erhöhen? Ich lass das mal dahingestellt.

Vielleicht könnten wir allerdings diesen Thread dazu brauchen, einige Good-Practices für JavaScript-Entwickler zusammenzustellen. So braucht dieser Thread nicht im Plantschbecken baden gehen. :wink:
 
Zurück
Oben