roger: element positionieren

hallo nochmal!

ich möchte ein element ala <div id="test" style="left:0;top:0">hallo</div> variabel positionieren. das heisst ich frage zunächst die größe des fensters ab und sage dann dem teil, wo es zu stehen hat (left, top). das geht doch denke ich mit javascript. dachte ich. probierts mal aus, da passiert nix!

var bildschirmx = screen.availWidth;
var bildschirmy = screen.availHeight;
var startx = Math.round(bildschirmx / 2);
var starty = Math.round(bildschirmy / 2);

document.write("<div id="test" style="left:"+startx+";top:"+starty+";z-index:10">hallo</div>");

noch konfuser ist die ausgabe im ns, der schreibt im quelltext die hälfte nochmal (?)!

*verwirrt*

hat jemand vielleicht eine antwort darauf? danke!

r.

  1. probier's mal mit position:absolute! das gehört eigentlich immer zu left und top!
    gruß
    kuchen

    1. danke!
      zumindest der ie hat's geschnallt.

      aber der ns will immer noch nicht! an was kann es noch liegen?

      hier die ausgabe im quellcode:
      <DIV id="test" style="position:absolute;left:512;top:370;z-index:10">hallo</DIV>
      <DIV id="test" Ttyle="position:absolute;left:512;top:370;z-index:10">

      1. Hallihallo!

        <DIV id="test" style="position:absolute;left:512;top:370;z-index:10">hallo</DIV>
        <DIV id="test" Ttyle="position:absolute;left:512;top:370;z-index:10">

        ^^
                  (ist das echt so? ;) )

        Vielleicht nimmt er es ja, wenn Du hinter die Angaben auch noch eine Einheit setzt:

        <DIV id="test" sytle="position: absolute; left:512px; top:370px; z-index:10; ">

        Ich hoffe, damit funktioniert es...

        Viele liebe Grüße,
        Der Dicki

        1. Hallihallo!

          danke für die antwort, aber

          <DIV id="test" sytle="position: absolute; left:512px; top:370px; z-index:10; ">

          hat nix gebracht...

          ich denke mal das es evtl. an der interpretation liegt...

          1. Hallihallo!

            danke für die antwort, aber

            <DIV id="test" sytle="position: absolute; left:512px; top:370px; z-index:10; ">
            hat nix gebracht...

            Nimm doch einfach mal das Leerzeichen vor "absolute" weg. Bei mir funktioniert es dann...

            Viele liebe Grüße,
            Der Dicki

            1. Hallihallo!

              danke für die antwort, aber

              <DIV id="test" sytle="position: absolute; left:512px; top:370px; z-index:10; ">

              scheint dann wohl doch an meinem netscape zu liegen... ich hab da nämlich kein leerzeichen...

              1. Hallihallo!

                Ich war jetzt ja gar nicht im Bilde, daß es um den (alten?) Netscape geht, sorry....

                Vielleicht geht dann ja das hier:
                <div id="test" top=370 left=512 position="absolute" z-index=10>

                Viele liebe Grüße,
                Der Dicki

                PS: Falls das auch nicht hinhaut, könnte man noch "div" durch "layer" ersetzen, aber dann bin ich auch mit meinem latein am Ende. (Denn spätestens mit layern sollte es gehen...)

                1. Hallihallo!

                  nö, der blöden sau kann man es einfach nicht recht machen! ich denke mal, das er mit dem document.write nicht klarkommt. denn wenn ich die geschichte als normales html reinstelle (nicht mit javascript erzeugt) dann funzt's!!!

                  ich werd wahnsinnig!

                  gebt mir eine waffe!

                  1. Hallihallo!

                    Wie sieht Dein Quelltext mit dem document.write denn jetzt genau aus?
                    Ich benutze unter http://www.dicki-web.de.vu/schnippsel/framemenu/ eine Ähnliche Funktion (layer dynamisch ins Dokument schreiben), und die funktioniert...

                    Vielleicht hast Du nur irgendwo noch einen ganz kleinen Schnitzer drin, auf den kein Mensch so ohne Weiteres kommt. Es gibt gerade bei NS4.x einen Haufen von Kleinigkeiten, die man falsch machen kann...

                    Viele liebe Grüße,
                    Der Dicki

  2. Hi,

    var bildschirmx = screen.availWidth;
    var bildschirmy = screen.availHeight;
    var startx = Math.round(bildschirmx / 2);
    var starty = Math.round(bildschirmy / 2);

    damit steht in "startx" der horizontale und in "starty" der vertikale Mittelpunkt der *Auflösung* und die hat mit der aktuellen Fenstergröße absolut nichts zu tun. Niemand surft im Vollbildmodus, es ist also im Fenster *immer* weniger Platz verfügbar als die Abfrage der Auflösung ergibt. Somit wird dein DIV auch nicht korrekt zentriert.

    Du kannst natürlich mit Javascript auch die Fensterbreite und -höhe abfragen, aber warum nimmst du nicht einfach

    <DIV id="test" style="position:absolute; left:50%; top:50%; z-index:10;">hallo</DIV>

    oder ähnliches? Damit kannst du auch auf

    document.write("<div id="test" style="left:"+startx+";top:"+starty+";z-index:10">hallo</div>");

    verzichten. Wenn du dann den Inhalt des DIVs doch noch um einige Pixel verschieben musst (es wird ja die linke obere Ecke damit zentriert), positioniere im ersten DIV (oben) ein zweites mit position:relative und verschiebe es.

    BTW, Javascript ist nett, aber eine Site muss immer auch ohne funktionieren.

    LG Orlando

    --
    http://opera.com/news/opera07/