Michael: veränderte Position bleibt nicht erhalten

Hallo NG,

Ich habe folgendes Problem:

Ich habe ein JavaScript geschrieben, das die Position von Elementen setzt. Dies mache ich über:

document.getElementById(Id).style.top =""+Wert

usw...
Das Script scheint auch zu funktionieren, da die Elemente an ihre Position springen, diese aber sofort wieder verlassen (also eine Art Rücksprung machen). Ich habe auch schon versucht die style Eigenschaft des Objektes wegzulassen, aber auch das brachte keinen Erfolg. Hat jemand eine Idee woran das liegen könnte?

mfg

Michael

  1. Ich habe ein JavaScript geschrieben, das die Position von Elementen setzt. Dies mache ich über:

    document.getElementById(Id).style.top =""+Wert

    und das funktioniert?

    1. du solltest immer überprüfen, ob das Objekt das du ansprechen willst überhaupt vorhanden ist.

    var obj = document.getElementById(id);

    if(!obj || !obj.style) return alert(id + ' existiert nicht!');

    2. was soll der leere String bewirken?

    3. neuere Browser erwarten hier auf jeden Fall eine Einheit.

    usw...
    Das Script scheint auch zu funktionieren, da die Elemente an ihre Position springen, diese aber sofort wieder verlassen (also eine Art Rücksprung machen). Ich habe auch schon versucht die style Eigenschaft des Objektes wegzulassen, aber auch das brachte keinen Erfolg. Hat jemand eine Idee woran das liegen könnte?

    Was soll das bewirken eine Eigenschaft wegzulassen?
    Was sagt die JS Konsole?
    Kann man sich das vielleicht mal angucken?

    Struppi.

    1. document.getElementById(Id).style.top = Wert+"px";

      und das funktioniert?

      Ja sollte es zumindest laut Selfhtml.
      Ich habe die Position des Scriptes im Quellcode verändert. Ich habe das Script unter das zu verändernde Element gesetzt. Nun bleibt das Element an seiner Position und springt nicht zurück.

      Den leeren String habe ich weggelassen. Es funktioniert auch ohne diesen.

      Was soll das bewirken eine Eigenschaft wegzulassen?

      Ich dachte, dass er die Werte setzt und dann gleich wieder mit den Originalwerten überschreibt, aber dem ist nicht so.

      Die Prüfung, ob das Element existiert werde ich aufnehmen.

      Gruß

      Michael

      1. document.getElementById(Id).style.top = Wert+"px";
        und das funktioniert?

        Nein !

        Ja sollte es zumindest laut Selfhtml.

        document.getElementById("Id").style.top=100;
        document.getElementById("Id").style.left=100;
        Die Pixel werden in Javascript nicht angegeben.
        Im Gegensatz dazu :
        <div id="id" style="position:absolute;top:-100px;left:-100px">
        <img src=""></div>
        usw,usw...