hambam: läuft nur unter NC, nicht unter IE (mal zur Abwechslung?)

Hallo Forummer,

wie ihr am Thread-Titel merkt, ich bin eher so ein Netsie und programmiere "erstmal" für
den Netsie und dann versuche ich das ganze auf den IE zu bringen.
Was für den einen in die eine Richtung schwer ist, ist für mich die Richtung IE.
Naja, aber da beiß ich mich nun (mit Eurer Hilfe, hoffentlich) durch.
Achja, es geht mir in erster Linie darum, daß das Script läuft und nicht, ob es so optimiert ist,
ob es anders auch viiiieeeel besser geht oder so, sondern reine Funktion.

Hier mein(e) Problemchen:

1.

Wie gesagt die Abschnitte im document.layers laufen, aber bei document.all klappts nicht
mit dem zIndex. In dem Fall laufen farbige Balken hoch und runter, nur einmal über und einmal
unter einem zweiten Layer (Grafik-Logo). (Netsie wie zuvor OK)

function animate_it() {
for (j = 4; j > 0; j--) {
  if (document.layers) {
   document["balken"+j].top = ypos + Math.sin(currstep+.5*(j-1))*55;
  } else if (document.all) {
   document.all["balken"+j].style.top = ypos + Math.sin(currstep+.5*(j-1))*55;
  }
  currstep += .05;
  if (document.layers) {
   if (document["balken"+j].top >= ypos+53) {
    if (document["balken"+j].zIndex < 100) document["balken"+j].zIndex += 10;
   }
   if (document["balken"+j].top <= ypos-53) {
    if (document["balken"+j].zIndex > 100) document["balken"+j].zIndex -= 10;
   }
  } else if (document.all) {
   if (document.all["balken"+j].style.top >= ypos+53) {
    if (document["balken"+j].style.zIndex < 100) document.all["balken"+j].style.zIndex += 10;
   }
   if (document.all["balken"+j].style.top <= ypos-53) {
    if (document.all["balken"+j].style.zIndex > 100) document.all["balken"+j].style.zIndex -= 10;
   }
  }
}
setTimeout("animate_it()",50);
}
animate_it()

2. (es handelt sich folgend um die entsprechenden Ausschnitte)

Bei der Zeile, die ich mit >> gekennzeichnet habe, bringt der liebe IE einen Fehler:

ungültiges Argument<<

<style>
<!--
.vorhang{
position:absolute;
left:0;
top:1;
width:100%;
height:100%;
layer-background-color:black;
background-color:black;
border:0.1px solid black;
}
.redline{
position:absolute;
left:0;
top:0;
width:100%;
height:1;
layer-background-color:red;
background-color:red;
border:0.1px solid red;
}
-->
</style>

<DIV id="redline" class="redline"></DIV>
<DIV id="vorhang" class="vorhang"></DIV>
<script language="JavaScript1.2">
var steps=10;
if (document.layers){
document.vorhang.clip.width = window.innerWidth;
document.vorhang.clip.height = window.innerHeight;
document.redline.clip.width = window.innerWidth;
document.redline.clip.height = 1;
}
else if (document.all){
document.all.vorhang.style.width = document.body.clientWidth;
document.all.vorhang.style.height = document.body.offsetHeight;
document.all.redline.style.width = document.body.clientWidth;
document.all.redline.style.height = 1;
}

function moving(){
window.scrollTo(0,0);
if (document.layers){
  document.redline.top += steps;
  document.vorhang.top += steps;
  document.vorhang.height -= steps;
  if (document.redline.top > window.innerHeight){
   clearInterval(timer);
  }
} else if (document.all) {
  document.all.redline.style.top += steps;
  document.all.vorhang.style.top += steps;

document.all.vorhang.style.height -= steps;

if (document.all.redline.style.top > document.body.offsetHeight){
   clearInterval(timer);
  }
}
}

function move_vorhang(){
timer=setInterval("moving()",10);
}
move_vorhang()

3. erzeugt beim IE auch wieder ungültiges Argument in Zeile 1

function jiggle() {
if (document.layers) {
  xpos = document.copyright.left;
  setTimeout("document.copyright.left = xpos+3" , 30);
  setTimeout("document.copyright.left = xpos-3" , 60);
  setTimeout("document.copyright.left = xpos+3" , 90);
  setTimeout("document.copyright.left = xpos-3" , 120);
  setTimeout("document.copyright.left = xpos" , 150);
} else if (document.all){
  xpos = document.all.copyright.style.left;
  setTimeout("document.all.copyright.style.left = xpos+3" , 30);
  setTimeout("document.all.copyright.style.left = xpos-3" , 60);
  setTimeout("document.all.copyright.style.left = xpos+3" , 90);
  setTimeout("document.all.copyright.style.left = xpos-3" , 120);
  setTimeout("document.all.copyright.style.left = xpos" , 150);
}
}

Hey, ich freu mich über jede Art von Hilfe!!!

hambam (mit ist bekannt, daß Nicks, nicht allzusehr beliebt sind, bin aber ein Dickkopf)

  1. Hallo,
    auf die schnell habe ich einige Fehler gesehen, z.B:
    document.all["balken"+j].style.top würde ich eval('document.all.balken' + j + '.style.top.....') schreiben (natürlich auch bei allen anderen).

    document["balken"+j].top = ypos +
    Hier (und wo anders) fehlt die Angabe "style". Wenn du CSS-Angaben ändern möchtest, MUßT du "style" benutzen.

    cucu
    Thomas

    hambam (mit ist bekannt, daß Nicks, nicht allzusehr beliebt sind, bin aber ein Dickkopf)

    Ich habe auch einen Dickkopf, aber was besser ist überzeugt mich einfach, egal ob von Gates ist oder nicht (z.B. IE *g*)

    1. Hallo Thomas!

      Danke erstmal für Deine Tips.

      document.all["balken"+j].style.top würde ich eval('document.all.balken' + j + '.style.top.....') schreiben (natürlich auch bei allen anderen).

      Hab ich umgebaut. Hat aber (wie erwartet / befürchtet) keine Änderung gebracht.

      document["balken"+j].top = ypos +
      Hier (und wo anders) fehlt die Angabe "style". Wenn du CSS-Angaben ändern möchtest, > MUßT du "style" benutzen.

      Hab ich kontrolliert, aber überall, wo ich auf den lieben IE eingehe, nutze ich auch 'style'.
      Beim NC gibts das ja nicht (und es funktioniert ja auch überall mit dem NC!).

      Wenn Du oder alle anderen noch einen Tip haben (oder es fehlen ein paar weitere Funktionen)
      dann wär's prima, wenn ich die hier zu sehen bekäme.

      In diesem Sinne noch frohes Wellenreiten....

      hambam

      1. Hallo,
        poste doch mal die kpl. Seite (inc. HTML), oder noch besser schicke sie mir mal zu. Ich werde dan mal nen "richtigen" Blick draufwerfen.
        cucu
        Thomas