HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ? |
 |

18-12-2006, 01:18
|
DarksoldierXX
Junior Member
|
|
Registriert seit: Dec 2005
Beiträge: 108
|
|
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) ? 1 : 0; // Netscape4.x
var b4up = (document.all) ? 1 : 0; // MSIE4, Opera5, Netccape5
var dx, xp, yp; // coordinate and position variables
var am, stx, sty; // amplitude and step variables
var snowobj;
var i, doc_width = 1000, doc_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=0; i<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"+ i +"\" LEFT=\"15\" "
+ "TOP=\"15\" VISIBILITY=\"show\"><IMG SRC=\""
+ snowflake +"\" BORDER=0></LAYER>");
} else if (b4up) {
document.write("<DIV ID=\"flake"+ i +"\" STYLE=\""
+ "position:absolute; z-index:"+ i +"; 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=0; i<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=0; i<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
|

18-12-2006, 01:29
|
DarksoldierXX
Junior Member
|
|
Registriert seit: Dec 2005
Beiträge: 108
|
|
ehrlich?
auf der gesammten seite verteilt schneihen die flocken?
wie kann ich den den bug entfernen ?
danke
|

18-12-2006, 01:37
|
Benny-one
Master 
|
|
Registriert seit: Jan 2002
Ort: Fulda
Beiträge: 5.700
|
|
Aktualisiere dein Firefox. Ich habe Version 2.0.
|

18-12-2006, 01:41
|
DarksoldierXX
Junior Member
|
|
Registriert seit: Dec 2005
Beiträge: 108
|
|
Zitat:
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
|

18-12-2006, 01:44
|
Benny-one
Master 
|
|
Registriert seit: Jan 2002
Ort: Fulda
Beiträge: 5.700
|
|
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.
|

18-12-2006, 01:49
|
DarksoldierXX
Junior Member
|
|
Registriert seit: Dec 2005
Beiträge: 108
|
|
Zitat:
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) ? 1 : 0; // Netscape4.x
|

18-12-2006, 01:51
|
Benny-one
Master 
|
|
Registriert seit: Jan 2002
Ort: Fulda
Beiträge: 5.700
|
|
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?
|

18-12-2006, 02:00
|
DarksoldierXX
Junior Member
|
|
Registriert seit: Dec 2005
Beiträge: 108
|
|
Zitat:
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??
|

18-12-2006, 02:04
|
Benny-one
Master 
|
|
Registriert seit: Jan 2002
Ort: Fulda
Beiträge: 5.700
|
|
Trial&Error. Bau nach und nach dein Design ein und so kannst du feststellen, wann es nicht mehr geht und das Problem beheben.
|

18-12-2006, 02:08
|
Hopka
PHP Expert
|
|
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
|
|
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.
|

18-12-2006, 02:43
|
DarksoldierXX
Junior Member
|
|
Registriert seit: Dec 2005
Beiträge: 108
|
|
Re: Re: Javascript (Schnee)
Zitat:
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
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|