Es rührt sich mix
Emanuel
- dhtml
Hallo,
habe da ein seltsames Problem,
ich möchte per Javascript ein Banner
von links nach rechts durch das Browserfenster rollen
lassen. Das funktioniert ganz gut, solange ich nur eine Version
für Netscape schreibe. Wie man beide Browser auseinanderhalten kann, habe ich mir schon im Archiv herausgepickt. Allerdings kriege ich es einfach nicht gebacken eine Version für beide Browser zu schreiben. Bei folgendem Script kommt in Beiden Browsern keine Fehlermeldung, aber rühren tut sich auch nichts.
<html>
<head>
<style type="text/css">
#Band1 {position: absolute; top:20px; left: 0px;}
#Band2{position: absolute; top:20px; left: -800px}
#Maske{position: absolute; top:20px; left: 755px}
</style>
<script language="JavaScript">
var isNav=false;
var Position1 = 0;
var Position2 = -800;
function bewegen() {
//Browser bestimmen
if (navigator.appName == "Netscape") {
isNav = true;
}
var BandEins;
if (isNav) {
BandEins = document.layers["Band1"].left;
alert("Netscape");
} else {
BandEins = document.all["Band1"].style.pixelLeft;
}
var BandZwei;
if (isNav) {
Bandzwei = document.layers["Band2"].left;
} else {
Bandzwei = document.all["Band2"].style.pixelLeft;
}
Bandeins = Position1;
Bandzwei = Position2;
if (Bandeins > 800) Bandeins = 0;
if (Bandzwei > 0) Bandzwei2 = -800;
BandEins = Bandeins + 3;
Bandzwei = Bandzwei +3;
meinTimer = setTimeout("bewegen()", 30);
}
</script>
</head>
<body bgcolor="#001531" onload="bewegen()">
<div ID="Band1"><a href="index.htm" onmouseover="clearTimeout(meinTimer);" onmouseout="bewegen()"><img src="Laufleiste_d.jpg" border="0"></a></div>
<div ID="Band2"><a href="index.htm" onmouseover="clearTimeout(meinTimer);" onmouseout="bewegen()"><img src="Laufleiste_d.jpg" border="0"></a></div>
<div ID="Maske"><img src="Maske.gif"></div>
</body>
</html>
Ist bestimmt nur ein superdoofer Fehler, den ich nicht erkenne, weil ich schon zu lange daran sitze.
Vielen Dank !
Hi Du,
ich habe Deinen Sourcecode noch nicht komplett durch, aber es liegt wohl daran, dass Du vergessen hast, das bei JavaScript GrossKleinSchreibung entscheidend ist (d.h. Du musst den Bezeichner einer Variablen immer genau so schreiben, wie Du sie angelegt hast (das gilt aber nicht nur für Variablen))!
Du hast ein paar mal Bandeins und ein paar mal BandEins geschrieben, das sind für JavaScript 2 verschiedene Sachen...
Bye-
Mirko
Hallo nochmal,
ganz abgesehen von dieser bereits erwähnten GrossKleinSchreibungssache hast Du u.a. einen weiteren Tippfehler (Du hast irgendwo nämlich sogar "Bandzwei2" geschrieben).
Darüber hinaus frage ich mich, an welcher Stelle überhaupt sowas steht wie : "Setze die Position der Layer auf die Werte meiner BandEins und BandZwei - Variablen"...
Selbst wenn Du das allerdings irgendwo tun würdest, würde sich nix bewegen, da Du ja jedesmal die Werte dieser beiden Variablen immer wieder, nachdem Du sie so schön ausgelesen hast, auf "Position1" und "Position2" zurücksetzt.
Tip: Am besten, Du formatierst Deinen Quelltext in Zukunft auch immer etwas übersichtlicher (Einrückungen).
Ich hab mal etwas dran rumgedoktort, ist zwar nicht wirklich toll so, sollte aber funzen (wollte so wenig wie möglich ändern).
<html>
<head>
<style type="text/css">
#Band1 {position: absolute; top:20px; left: 0px;}
#Band2 {position: absolute; top:20px; left: -800px}
#Maske {position: absolute; top:20px; left: 755px}
</style>
<script language="JavaScript">
var isNav=false;
var Position1 = 0;
var Position2 = -800;
function bewegen()
{
//Browser bestimmen
if (navigator.appName == "Netscape")
{
isNav = true;
}
var BandEins;
if (isNav)
{
BandEins = document.layers["Band1"].left;
/* alert("Netscape"); */
}
else
{
BandEins = document.all["Band1"].style.pixelLeft;
}
var BandZwei;
if (isNav)
{
BandZwei = document.layers["Band2"].left;
}
else
{
BandZwei = document.all["Band2"].style.pixelLeft;
}
/* Bandeins = Position1;
Bandzwei = Position2; */
if (BandEins > 800) BandEins = 0;
if (BandZwei > 0) BandZwei = -800;
BandEins = BandEins + 3;
BandZwei = BandZwei + 3;
/* Variablenwerte auf die Layer übertragen */
if (isNav)
{
document.layers["Band2"].left = BandZwei;
document.layers["Band1"].left = BandEins;
}
else
{
document.all["Band1"].style.pixelLeft = BandEins;
document.all["Band2"].style.pixelLeft = BandZwei;
}
meinTimer = setTimeout("bewegen()", 30);
}
</script>
</head>
<body bgcolor="#ff1531" onload="bewegen()">
<div ID="Band1">
<a href="index.htm" onmouseover="clearTimeout(meinTimer);" onmouseout="bewegen()"><img src="Laufleiste_d.jpg" border="0"></a>
</div>
<div ID="Band2">
<a href="index.htm" onmouseover="clearTimeout(meinTimer);" onmouseout="bewegen()"><img src="Laufleiste_d.jpg" border="0"></a>
</div>
<div ID="Maske">
<img src="Maske.gif">
</div>
</body>
</html>