Seite 1 von 2
JS: Schneefall....
Verfasst: So 26.Nov, 2006 11:52
von Christian_N
...kennt jemand ein JavaScript, welche auch unter FireFox läuft und über die ganze seite schneit, auch wenn man scrollt und des allerwichtigste es darf nicht sein das der CPU danach 100% ausgelastet ist...
Hab zwar ein Script, wo der CPU nicht ausgelastet wird und wo es auch über die ganze Seite wegschneit, aba nur leider mit dem IE, falls keins gibt gibt es zumindste jemand hier der sich mit JS auskennt um des Script, was ich dann anhängen würde etwas überarbeitet damit es in alle browers gehn würde? wäre jedenfalls klasse.
Verfasst: So 26.Nov, 2006 12:59
von Udo
Hey, wäre das für dich eine Alternative ?
Demo
Dort der Christmas 2 Style.
Udo
Verfasst: So 26.Nov, 2006 17:17
von Christian_N
Wäre eine möglichkeit, als grafik könnte man ja auch ggf. eine andere nehme, da hab ich schon genug gefunden wo auch die flocken ggf. kleiner sind etc.
Wenn ich später zuhausen bin, schau ich mal nach wie es im FireFox, IE, & co. läuft, und ob die CPU auslastung nicht gleich 100% deshalb ist dann.
Melde mich den Abend jedenfalls nochmal dann.
EDIT: hab geschaut auch hier (bei der Demo) wird der CPU bis zu 100% ausgelastet und das darf nicht sein, den möchte ja nicht die Seite wegen so eine Script verlangsam und nicht nur die Seite sonder den ganze PC damit verlangsamen, das möchte ich meine Benutzer nicht zumuten.
Warum ist den das nur so?
Bisher haben alle die ich gefunden habe den CPU bis zu 100% ausgelastet
nur ein Script hatte ich bisher gefunden welche den CPU nicht belastet hatte allerdings war dieser IE only, wenn man den vllt. noch erweitern könnte damit es auch im FireFox & co. klappt, ohne das der CPU dann wieder belastet wird, wäre es eigentlich ganz gut.
Gruß Chris
Verfasst: So 26.Nov, 2006 19:33
von AmigaLink
Code: Alles auswählen
<SCRIPT language=JavaScript1.2>
function rnd(){return Math.random();}
function xRnd(){return (rnd()/10);}
function yRnd(){return (2 + 2*( .5 - rnd() ));}
var letitsnow = true;
var flakes = Array("http://www.essenmitfreude.info/board/images/weihnachten/schneeflocke1.gif","http://www.essenmitfreude.info/board/images/weihnachten/schneeflocke2.gif","http://www.essenmitfreude.info/board/images/weihnachten/schneeflocke3.gif","http://www.essenmitfreude.info/board/images/weihnachten/schneeflocke4.gif");
var numflakes = 10;
var T = 50;
var dx, xPos, yPos, am, vx, vy, obj, i;
var winwidth = 640;
var winheight = 480;
function sizeIt()
{
window.winwidth = window.innerWidth?window.innerWidth:document.body.clientWidth;
window.winheight = window.innerHeight?window.innerHeight:document.body.clientHeight;
}
dx = new Array();
xPos = new Array();
yPos = new Array();
sway = new Array();
var swaymax = 20;
vx = new Array();
vy = new Array();
sizeIt();
document.write("<STYLE type=\"text/css\">\n.flk {position:absolute;top:-100;}<\/STYLE>");
for (i = 0; i < numflakes; i++)
{
var thisflake = "" + flakes[Math.floor(rnd()*flakes.length)];
dx[i] = 0;
xPos[i] = rnd()*(window.winwidth-30) +10;
yPos[i] = rnd()*window.winheight;
sway[i] = rnd()*swaymax;
vx[i] = xRnd();
vy[i] = yRnd();
document.write("<div id=\"f"+ i +"\" class=\"flk\"><img src=\"");
document.write(thisflake + "\" border=\"0\"><\/div>");
}
function snowMove(id,left,top)
{
obj = document.getElementById?document.getElementById(id).style:
document.all?document.all[id].style:
document.layers?document.layers[id]:null;
if (obj)
{
obj.left=left;
obj.top=top;
}
}
function snowSwitch(s)
{
if ( s == "on" )
{
if ( window.letitsnow != true )
{
window.letitsnow = true;
doSnow();
}
} else if ( s == "off" )
{
window.letitsnow = false;
hideSnow();
}
}
function hideSnow()
{
for (i = 0; i < numflakes; ++ i) {
snowMove("f"+i,-100,-100);
}
}
function doSnow() {
if (letitsnow){
sizeIt();
delta = (window.pageYOffset!=null)?window.pageYOffset:document.body.scrollTop;
for (i = 0; i < numflakes; ++ i) {
yPos[i] += vy[i];
if (yPos[i] > window.winheight+delta-50) {
xPos[i] = rnd()*(window.winwidth-sway[i]-30);
yPos[i] = delta;
vx[i] = xRnd();
vy[i] = yRnd();
}
dx[i] += vx[i];
snowMove("f"+i,xPos[i]+sway[i]*Math.cos(dx[i]),yPos[i]);
}
setTimeout("doSnow()", T);
}
}
window.onload=doSnow;
</SCRIPT>
Klappt im IE und FF und bei mir lastet es den Rechner auch nicht aus.

Betonung auf
bei mir denn ich habe eine Userin auf EmF, deren Rechner mit diesem Script ganz schön ins Schwitzen kommt.

Verfasst: So 26.Nov, 2006 20:05
von Christian_N
werd ich mal nachher testen... hab gerade jedenfalls mal mir ein Rezept bei deiner Seite (Zwiebel - Käse - Kuche) da ich heute sehr viele Zwiebel bekam und als ne einzel Person man da jetzt mal schauen muss was man da so machen kann mit alles

- Sind jedenfalls gute Rezepte auf der Seite dabei
EDIT: Bind ich den Code falls ein? habe den in der overall_body.tpl vor den </head>-Tag eingefügt, aber kann kein Schnee fall auf der Seite feststellen

Verfasst: So 26.Nov, 2006 23:32
von AmigaLink
Setz es mal nach den </head>-Tag.
Und denk dran die Adressen für die Bilder, in Zeile 6, anzupassen.

Verfasst: So 26.Nov, 2006 23:50
von Christian_N
Hatte ich, das is ja selbst verständlich

Habs mal gemacht bringt aber kein unterschied, sieht jetzt so aus (auszug):
Code: Alles auswählen
<link rel="stylesheet" href="{BBC_BOX_SHEET}" type="text/css">
<script language="javascript" src="templates/bbc_box/fade.js" type="text/javascript"></script>
</head>
<SCRIPT language=JavaScript1.2>
function rnd(){return Math.random();}
function xRnd(){return (rnd()/10);}
function yRnd(){return (2 + 2*( .5 - rnd() ));}
var letitsnow = true;
var flakes = Array("http://www.fanclub-littlechantal.de/images/weihnachten/schneeflocke1.gif","http://www.fanclub-littlechantal.de/images/weihnachten/schneeflocke2.gif","http://www.fanclub-littlechantal.de/images/weihnachten/schneeflocke3.gif","http://www.fanclub-littlechantal.de/images/weihnachten/schneeflocke4.gif");
var numflakes = 10;
var T = 50;
var dx, xPos, yPos, am, vx, vy, obj, i;
var winwidth = 640;
var winheight = 480;
function sizeIt()
{
window.winwidth = window.innerWidth?window.innerWidth:document.body.clientWidth;
window.winheight = window.innerHeight?window.innerHeight:document.body.clientHeight;
}
dx = new Array();
xPos = new Array();
yPos = new Array();
sway = new Array();
var swaymax = 20;
vx = new Array();
vy = new Array();
sizeIt();
document.write("<STYLE type=\"text/css\">
.flk {position:absolute;top:-100;}<\/STYLE>");
for (i = 0; i < numflakes; i++)
{
var thisflake = "" + flakes[Math.floor(rnd()*flakes.length)];
dx[i] = 0;
xPos[i] = rnd()*(window.winwidth-30) +10;
yPos[i] = rnd()*window.winheight;
sway[i] = rnd()*swaymax;
vx[i] = xRnd();
vy[i] = yRnd();
document.write("<div id=\"f"+ i +"\" class=\"flk\"><img src=\"");
document.write(thisflake + "\" border=\"0\"><\/div>");
}
function snowMove(id,left,top)
{
obj = document.getElementById?document.getElementById(id).style:
document.all?document.all[id].style:
document.layers?document.layers[id]:null;
if (obj)
{
obj.left=left;
obj.top=top;
}
}
function snowSwitch(s)
{
if ( s == "on" )
{
if ( window.letitsnow != true )
{
window.letitsnow = true;
doSnow();
}
} else if ( s == "off" )
{
window.letitsnow = false;
hideSnow();
}
}
function hideSnow()
{
for (i = 0; i < numflakes; ++ i) {
snowMove("f"+i,-100,-100);
}
}
function doSnow() {
if (letitsnow){
sizeIt();
delta = (window.pageYOffset!=null)?window.pageYOffset:document.body.scrollTop;
for (i = 0; i < numflakes; ++ i) {
yPos[i] += vy[i];
if (yPos[i] > window.winheight+delta-50) {
xPos[i] = rnd()*(window.winwidth-sway[i]-30);
yPos[i] = delta;
vx[i] = xRnd();
vy[i] = yRnd();
}
dx[i] += vx[i];
snowMove("f"+i,xPos[i]+sway[i]*Math.cos(dx[i]),yPos[i]);
}
setTimeout("doSnow()", T);
}
}
window.onload=doSnow;
</SCRIPT>
<body bgcolor="{T_BODY_BGCOLOR}" text="{T_BODY_TEXT}" link="{T_BODY_LINK}" vlink="{T_BODY_VLINK}" onload="blink()">
<a name="top"></a>
<table width="100%" cellspacing="1" cellpadding="2" border="0" align="center" class="forumline" >
hatte auch schon nach dem <body...>-tag es gehabt hat genauso viel gebracht, einfach kein Schnee zu sehen.
Naja, womöglich ist das beste es wegzulassen, habe ja eine andere cellpic3.gif grafik wo schnee drauf liegt und somit es wenigste schonmal etwas winterlich aussieht.
Sollte ggf. ja auch ausreichen so find ich falls mags kannst nachschaun

Verfasst: So 26.Nov, 2006 23:57
von oxpus
Javascript immer vor dem head-tag!
Und nach dem Einbau und dem Hochladen der Datei muss der Browser Cache geleert werden, damit der Browser das Script auch wirklich verwendet.
Verfasst: Mo 27.Nov, 2006 00:16
von Christian_N
Siehe edit bei #5 da hatte ich es ja davor gehabt und es war kein schneefall selbst nachdem ich den cache vom browser geleert hatte und auch der cache ordner auf meinem webspace mal geleert hatte hatte beides nichts gebracht. Naja ich lass es einfach nicht schneien, es ist ja schon ein große wunder wenn es in Deutschland überhaupt mal richtig schneien würden ausser diesser maschschnee ständig

Verfasst: Mo 27.Nov, 2006 02:45
von AmigaLink
Javascript immer vor dem head-tag!
Das ist Grundsätzlich natürlich richtig.
Ich setze das Script aber z.B. mitten im Body bereich meines Portals ein (Zeitgesteuert mittels des Banner MODs von Niels) und habe keinerleo Probleme.

Verfasst: Mo 27.Nov, 2006 08:36
von wastl
[quote="Christian_N";p="66972"]Siehe edit bei #5 da hatte ich es ja davor gehabt[/quote]
laut #5 hattest du es vor dem <
/head> du sollst es aber vor dem <head> einbauen
das script, welches in #2 genannt wurde, funktioniert bei mir übrigens herrlich, zumindest lokal. wenn es denn wirklich mal schneien wird kann ich mehr sagen was andere user für erfahrungen damit haben
Verfasst: Mo 27.Nov, 2006 09:40
von oxpus
@AmigaLink
Der HTML-Header ist dafür da, alle Formatierung und externe Scripte aufzunehmen. Extern wird hier auch alles bezeichnet, was nicht HTML im Nachnamen hat, also auch Javascript

Verfasst: Mo 27.Nov, 2006 15:19
von AmigaLink
Ist schon klar.
Ich sag ja nur wie ich es habe und das es so bei mir Funktioniert.
Ich mache das übrigens so, weil ich zu Faul bin das Script jedes Jahr neu einzubinden. Ich hab es in der Bannerverwaltung und lasse es Zeitgesteuert im Dezember und Januar bei mir im Portal schneien. Genauso verfahre ich mit anderen Spielereien (Halloween, Advent, Silvester, ...).
Dadurch muss ich nur, im laufe des Jahres mal dran denken, die Daten der Zeitsteuerung zu aktualisieren (Jahreszahl).

Abgesehen von dem geringem Aufwand, hat das den Vorteil das die sachen Pünktlich ein und ausgeblendet werden. Selbst wenn ich gerade garnicht zuhause bin.

Verfasst: Mo 27.Nov, 2006 15:45
von Christian_N
Das wäre noch besser, wenn da mal eine genaue beschreibung zukommen lassen könntest, wie man das so einbaut damit ess zeitgesteuert läuft, wäre ool, da ich ehrlich gesagt auch zu faul bin und andersrum auch nicht so die zeit habe pünktlich es immer ein und auszbauen.
Und unter Zeitdruck passiert schonmal schnell ein Fehler, wie gerade hab ich ausversehen eine Datei vom Sever gelöscht, die nicht gelöscht werde sollte, duimmerweisse hab ich davon kein aktuelles Backup mehr ¦4, jetzt muss ich mal bei all-inkl.com anrufen in der hoffnung das die eins haben und mir die datei ggf. schicken könnten.
EDIT: Hat sich schon erledigt die machen auch nur zwar 1x im Monat ein Backup ca. aber die geb mir letzte beide von Okt. und 22.Nov wo ich die Datei dann rausnehmen kann die ich ausversehn gelöscht hatte

Verfasst: Mo 27.Nov, 2006 19:42
von JaneDoe
[quote="oxpus";p="66975"]@AmigaLink
Der HTML-Header ist dafür da, alle Formatierung und externe Scripte aufzunehmen. Extern wird hier auch alles bezeichnet, was nicht HTML im Nachnamen hat, also auch Javascript

[/quote]
also selfhtml meint:
Es gibt keine festen Vorschriften dafür, an welcher Stelle einer HTML-Datei ein JavaScript-Bereich definiert werden muss. Es ist unter JavaScript-Programmierern zur Gewohnheit geworden, einen solchen Bereich im Kopf der HTML-Datei, also zwischen <head> und </head> zu definieren. Dadurch ist am ehesten sichergestellt, dass der Code vom WWW-Browser bereits eingelesen ist und zur Verfügung steht, wenn er ausgeführt werden soll.
JavaScript-Code kann automatisch beim Einlesen der HTML-Datei ausgeführt werden. Das ist dann der Fall, wenn JavaScript-Befehle in einem JavaScript-Bereich außerhalb jeder Seite selbst definierten Funktion stehen, so wie im obigen Beispiel. In solchen Fällen ist es manchmal auch erforderlich, den Script-Bereich innerhalb des HTML-Dateikörpers, also innerhalb von <body>...</body>, zu notieren. Zum Beispiel, wenn Sie am Ende der Datei mit JavaScript dynamisch Datum und Uhrzeit der letzten Änderung an der Datei schreiben wollen.
und ich kenne fast schon mehr Javascripte die im body, denn im head tag auftauchen.
Verfasst: Mo 27.Nov, 2006 20:45
von Udo
[quote="Christian_N";p="66958"]
EDIT: hab geschaut auch hier (bei der Demo) wird der CPU bis zu 100% ausgelastet und das darf nicht sein, den möchte ja nicht die Seite wegen so eine Script verlangsam und nicht nur die Seite sonder den ganze PC damit verlangsamen, das möchte ich meine Benutzer nicht zumuten.
Warum ist den das nur so?
Bisher haben alle die ich gefunden habe den CPU bis zu 100% ausgelastet
nur ein Script hatte ich bisher gefunden welche den CPU nicht belastet hatte allerdings war dieser IE only, wenn man den vllt. noch erweitern könnte damit es auch im FireFox & co. klappt, ohne das der CPU dann wieder belastet wird, wäre es eigentlich ganz gut.
Gruß Chris[/quote]
Für welche Forensoftware suchst du den den Schneefallmod ?
For Orion und Phpbb Plus kannst du einen haben den du auch im ACP einstellen kannst
CPU Auslastung bei mir um die 20 %
Udo
Verfasst: Mo 27.Nov, 2006 23:42
von oxpus
@JaneDoe
Für Javascript ist das korrekt, aber die HTML-Regeln besagen, daß nur der Header für alle Arten von Definitionen vorgesehen ist.
Klar, muss auch Javascript im Body-Tag zulässig sein (es ist ja auch nicht verboten), sonst könnte man z. B. Funktionen nicht aufrufen.
Aber alleine schon aus Kompatibilitätsgründen sollte man Javascript, sofern möglich, ausschliesslich im HTML-Header unterbringen, was auch das w3c-Konsortium immer wieder empfiehlt, um
A Den Code vor dem Anzeigen der ersten Zeichen bereits definiert zu haben
B Jeden Browser dazu zu veranlassen, die Anweisungen auch auszuführen, bzw. komplett auszulassen (ältere Browser zeigen Javascript als Text an, sofern dieses nicht auskommentiert wird!)
C die Geschwindigkeit zu erhöhen
Daher ist eben Javascript, also alles, was für eine Seite "vorweg" definiert werden kann, möglichst in den HTML-Header zu setzen, bei umfangreichen Funktionen oder Blöcken gar eine externe Datei verwenden.
So lernt man es auch, wenn man optimierte Webseiten erstellt...
Aber eins ist definitiv nicht erlaubt:
Javascript zwischen </head> und <body>. Denn dort gehört garnichts hin

Verfasst: Di 28.Nov, 2006 15:22
von AmigaLink
Das wäre noch besser, wenn da mal eine genaue beschreibung zukommen lassen könntest, wie man das so einbaut damit ess zeitgesteuert läuft
Wie gesagt nutze ich den Complete Banner MOD von Niels.
Das Ding ist eine sehr machtvolle Bannerverwaltung, bei der man nicht nur Bilder nutzen kann, sondern auch HTML- & Javascript-Codes. Im Board werden 10 Platzhalter installiert, die dann übers ACP mit Bannern gefüllt werden können. Dabei kann definiert werden wer die Banner eingeblendet bekommt (Gäste, Mitglieder, Mods, Admins) und wann. Ausserdem kann man bestimmen das ein Banner nur in einem bestimmtem Forum angezeigt wird.
Ein fast Perfekter MOD, der allerdings auch ein wenig Performance schluckt. Nut zum Steuern solcher Spielereien würde ich ihn nicht verwenden! Aber da ich auf EmF mit Bannerwerbung und für Gäste sogar mit PopUp arbeite. Ist er für mich ein Wertvolles Hilfsmittel.
Ich Überlege aber bereits seit längerem ob ich ihn wieder deinstalliere. Denn die Banner bringen nicht wirklich etwas!
Lediglich die Google-Ads und das PopUp helfen ein wenig bei der Finanzierung des Servers. Wobei mein alter PopUp-Anbieter besser gezahlt hat als mein neuer.

(Deswegen ist er jetzt bestimmt auch Pleite.

)
Verfasst: Di 28.Nov, 2006 15:26
von wastl
udo, ich bräuchte sowohl für phpbb plus als auch für orion sowas =)
Verfasst: Di 28.Nov, 2006 15:44
von Udo
[quote="wastl";p="67030"]udo, ich bräuchte sowohl für phpbb plus als auch für orion sowas =)[/quote]
Du bist doch bei mir angemeldet. Beide findest du im Downloadbereich.
Udo
Verfasst: Di 28.Nov, 2006 15:51
von wastl
alles klar, habs gefunden, danke =)
Verfasst: Di 28.Nov, 2006 17:24
von Christian_N
@Udo, weder noch hab wie man aus der Homepage (Signatur) entnehmen kann ein Vanilla phpBB mit eingebaute MODs.
@Amigalink, schon klar und hab mittlerweile auf meiner HP auch schon als News geschrieben, das es kein Schneefall geben wird. Somit hat sich das Thema für mich hiermit erstmal erledigt.

Verfasst: Di 28.Nov, 2006 19:09
von Udo
[quote="Christian_N";p="67042"]@Udo, weder noch hab wie man aus der Homepage (Signatur) entnehmen kann ein Vanilla phpBB mit eingebaute MODs.
@Amigalink, schon klar und hab mittlerweile auf meiner HP auch schon als News geschrieben, das es kein Schneefall geben wird. Somit hat sich das Thema für mich hiermit erstmal erledigt.

[/quote]
Ok, wenn es sich für dich erledigt hat. Für eine Vanilla phpBB hätte ich das jetzt auch.
Kannst ja trotzdem mal schauen:
http://www.rurportal.de//phpbb/forum/index.php
Udo
Verfasst: Di 28.Nov, 2006 20:56
von Christian_N
Sieht gut aus aber, bei mir ist die Auslastung wieder bis zu 100% zwang zwischen 50-100% halt hin und her.
Verfasst: Mi 29.Nov, 2006 19:38
von JaneDoe
[quote="Christian_N";p="67056"]Sieht gut aus aber, bei mir ist die Auslastung wieder bis zu 100% zwang zwischen 50-100% halt hin und her.[/quote]
ich hab auch mal obigen Link angeklickt.
Auf 2 rechnern max 10% Cpu Last, im Schnitt so um 2%. und das sind ca 5 Jahre alte Rechner.
Getestet mit FF2 IE7.
Da scheint mir das Problem doch woanders zu sein.