Schneefall auf der Seite?

Begonnen von Didi, 19 Dezember 2004, 13:48:22

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Didi

Hat jemand ein Script, mit dem man es schneien lassen kann auf der Seite?!? Vielleicht mit kurzer Erklärung in welche Datei das Script eingefügt werden sollte!
Danke!

jubilee

#1
Hallo !
Das musst Du mit Javascript machen :
Zitat
<script language="JavaScript">
var snowsrc="snow.gif"
var no = 10;

var ns4 = (document.layers) ? 1 : 0;
var ie = (document.all ) ? 1 : 0;
var dom = (document.getElementById && !document.all) ? 1 : 0;

var dx, xp, yp;
var am, stx, sty;
var i;
var doc_width = screen.availWidth;
var doc_height = screen.availHeight;


if (ns4)
{ doc_width = self.innerWidth;
doc_height = self.innerHeight; }
else if (ie)
{ doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight; }
else if (dom)
{ 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 = 0;
xp = Math.random()*(doc_width-50);
yp = Math.random()*doc_height;
am = Math.random()*20;
stx = 0.02 + Math.random()/10;
sty = 0.7 + Math.random();

if (ns4)
{
if (i == 0)
{ document.write("<layer name='dot"+ i +"' left='-20' top='-20' visibility='show'><img src='"+snowsrc+"' border='0'></layer>"); }
else
{ document.write("<layer name='dot"+ i +"' left='-20' top='-20' visibility='show'><img src='"+snowsrc+"' border='0'></layer>"); }
}
else if (ie)
{
if (i == 0)
{ document.write("<div id='dot"+ i +"' style='position:absolute; z-index:"+ i +"; visibility:visible; top:-20px; left:-20px;'><img src='"+snowsrc+"' border='0'></div>"); }
else
{ document.write("<div id='dot"+ i +"' style='position:absolute; z-index:"+ i +"; visibility:visible; top:-20px; left:-20px;'><img src='"+snowsrc+"' border='0'></div>"); }
}
else if (dom)
{
if (i == 0)
{ document.write("<div id='dot"+ i +"' style='position:absolute; z-index:"+ i +"; visibility:visible; top:-20px; left:-20px;'><img src='"+snowsrc+"' border='0'></div>"); }
else
{ document.write("<div id='dot"+ i +"' style='position:absolute; z-index:"+ i +"; visibility:visible; top:-20px; left:-20px;'><img src='"+snowsrc+"' border='0'></div>"); }
}
}

function snowNS4() {
for (i = 0; i < no; ++ i) {
yp += sty;
if (yp > doc_height-50) {
xp = Math.random()*(doc_width-am-30);
yp = 0;
stx = 0.02 + Math.random()/10;
sty = 0.7 + Math.random();
doc_width = self.innerWidth;
doc_height = self.innerHeight;
}
dx += stx;
document.layers["dot"+i].top = yp;
document.layers["dot"+i].left = xp + am*Math.sin(dx);
}
setTimeout("snowNS4()", 10);
}

function snowIE() {
for (i = 0; i < no; ++ i) {
yp += sty;
if (yp > doc_height-50) {
xp = Math.random()*(doc_width-am-30);
yp = 0;
stx = 0.02 + Math.random()/10;
sty = 0.7 + Math.random();
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx += stx;
document.all["dot"+i].style.pixelTop = yp;
document.all["dot"+i].style.pixelLeft = xp + am*Math.sin(dx);
}
setTimeout("snowIE()", 10);
}

function snowDOM() {
for (i = 0; i < no; ++ i) {
yp += sty;
if (yp > doc_height-50) {
xp = Math.random()*(doc_width-am-30);
yp = 0;
stx = 0.02 + Math.random()/10;
sty = 0.7 + Math.random();
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx += stx;
document.getElementById("dot"+i).style.top = yp;
document.getElementById("dot"+i).style.left = xp + am*Math.sin(dx);
}
setTimeout("snowDOM()", 10);
}

if (ns4)
{ snowNS4(); }
else if (ie)
{ snowIE(); }
else if (dom)
{ snowDOM(); }

</script>

dazu brauchst Du noch eine Grafik für die Schneeflocke (snow.gif).
Einstellen der Anzahl der Schneeflocken auf der Seite geht mit dem Wert für var no = 10;
Einbinden musst Du das so auf der entsprechenden Seite, das es irgendwo im
Body-Teil der Webseite erscheint (phpBNuke etc... in einem Modul, Block etc.....)
MfG
jubilee

jubilee

BTW hier auch noch eine passende Grafik dazu :


Charan

Hallo,

also wenn ich das Script in einen Block schmeiße, wo kommt denn dann die Schneeflocke hin, bzw. wie findet das Script die Flocke?


Gruß Jochen

jubilee

#4
Hallo !
Zitatalso wenn ich das Script in einen Block schmeiße, wo kommt denn dann die Schneeflocke hin, bzw. wie findet das Script die Flocke?
Wenn Du das Script nicht verändert hast, sollte die Grafik im Portal-Root-Verzeichnis liegen (da wo auch die config.php liegt).
Die Pfadangaben rechnen sich ab dem Portal-root-Verzeichnis
Wenn Du die Grafik z.B. ins images-Verzeichnis legst, dann muss das so aussehen :
Zitatvar snowsrc="images/snow.gif"
etc.. pp....

MfG
jubilee

Charan

Ist ja zum piepsen. Habe das Script in einen Block getan, doch es läuft auf der ganzen Seite.
Eine Esoterik-Seite mit Schneeflocken - kreisch.

Was mache ich falsch?

Gruß Jochen

jubilee

Hallo !
ZitatIst ja zum piepsen. Habe das Script in einen Block getan, doch es läuft auf der ganzen Seite.
Was mache ich falsch?
Öhhh ... gar nix. Das Script zeigt die Flocken auf der ganzen Seite.
Das in den Block packen sorgt nur dafür, das es im Body-Bereich der Seite angezeigt wird.
Begrenzen kannst du es nicht nur auf den Block. Zumindest dieses Script nicht.
Wie du in der initialisierung sehen kannst --->
Zitatif (ns4)
{ doc_width = self.innerWidth;
doc_height = self.innerHeight; }
else if (ie)
{ doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight; }
else if (dom)
{ doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight; }
verwendet das Script immer den vom Clienten sichtbaren Bereich als Ausgabefenster.
Es gibt auch Scriptte die sogeschrieben sind, das sie einen bestimmten Bereich verwenden, da hab ich gerad aber
keines parat.
MfG
jubilee



Didi

Irgendwo im Bodyteil einfügen?
Welche Php kannst Du mir da empfehlen! Die die ich angeschaut habe, haben alle keinen Bodyteil und habe ich das Script in einer html eingefügt tut sich nichts!?!

Didi

Hat sich erledigt, danke, war men Fähler! Es funzt jetzt richtig doll!

schippe001

Hallo,

habe den schneefall auch auf meiner seite eingebaut. ist echt nett. wie kann ich nun die flocken langsamer fallen lassen?
frohe weihnachten wünscht ...

schippe001

jubilee

Hallo !
Zitat...wie kann ich nun die flocken langsamer fallen lassen...
Dazu änderst du in den 3 Funktionen
function snowDOM()
function snowIE()
function snowNS4()
die folgende Zeile ab
Zitatsty = 0.7 + Math.random();
in dieser zeile den (initial-)Wert anpassen
z.B. für langsameres fallen
Zitatsty = 0.1 + Math.random();
Und das dann in allen 3 Funktionen dementsprechend anpassen.
MfG
jubilee