JL: Layer verschieben in NS 6.2.2

Das funzt nicht:

alert(document.getElementById(layerid).style.left);
      document.getElementById(layerid).style.left = document.getElementById(layerid).style.left - 1;
      alert(document.getElementById(layerid).style.left);

Was mach ich falsch?

Wie mach ich es richtig?

auf meiner Seite beeinflusst es nur einen Layer, die anderen überhaupt nicht, dieser eine Layer sitzt dann aber plötzlich nicht mehr bei left:181px; sondern bei left:-1px;

  1. hi

    document.getElementById(layerid).style.left = document.getElementById(layerid).style.left - 1;

    das Problem ist, dass da eben "181px" und nicht nur "181" steht. Insofern muss man erstmal die Einheit da wieder weg kriegen und hinterher wieder ran.

    Grüße aus Bleckede

    Kai

  2. Das funzt nicht:

    alert(document.getElementById(layerid).style.left);
          document.getElementById(layerid).style.left = document.getElementById(layerid).style.left - 1;
          alert(document.getElementById(layerid).style.left);

    Was mach ich falsch?

    Wie mach ich es richtig?

    auf meiner Seite beeinflusst es nur einen Layer, die anderen überhaupt nicht, dieser eine Layer sitzt dann aber plötzlich nicht mehr bei left:181px; sondern bei left:-1px;

    Hallo
    unter [LINK:http://webcockroches.onlinehome.de/flyer.html /Link] findest Du ein gutes Beispiel (function fly2() ) wie es gut geht.

    Im allegemeinen
    wert=parseInt(document.getElementById(layerid).style.left)
    document.getElementByid(layerid).style.left=(wert+10)+"px";

    sofern wäre obige Code (aber langsam arbeitend) so zu schreiben:

    alert(document.getElementById(layerid).style.left);
           document.getElementById(layerid).style.left =( parseInt(document.getElementById(layerid).style.left) - 1)+"px";
           alert(document.getElementById(layerid).style.left);

    1. So funzt das nicht, wie du meinst!

      alert(document.getElementById(layerid).style.left);  --> "181px"
      wert=parseInt(document.getElementById(layerid).style.left)
      wert=(wert+10)+"px";
      alert(wert);  --> "191px"
      document.getElementById(layerid).style.left=(wert+10)+"px";-->ERROR
      alert(document.getElementById(layerid).style.left);

      in der vorletzten Zeile:
      Fehler: uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMCSS2Properties.left]"  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: http://localhost:2323/schul-sucht/design/layout-2-header.js :: layer_visible :: line 77"  data: no]