Rikarda: Javascript Elementeigenschaften addieren

Hallo,

wenn ich

document.getElementById("tt_tip").style.top + document.body.scrollTop

addieren will, erhalte ich immer z.B. 275px+25 und nicht 300!

Was mache ich falsch.

Will die Top-Position eines Elementes ermitteln und dies dann um den gescrollten werden nach unten verschieben ...

Vielen dank an alle,

Rikarda

  1. Hi,

    document.getElementById("tt_tip").style.top + document.body.scrollTop
    addieren will, erhalte ich immer z.B. 275px+25 und nicht 300!

    Was mache ich falsch.

    Du gehst davon aus, daß ...style.top eine Zahl ist.
    Es ist aber ein String, der eine Zahl und eine Einheit enthält.
    Und + bei Strings sorgt fürs Anhängen...

    Will die Top-Position eines Elementes ermitteln und dies dann um den gescrollten werden nach unten verschieben ...

    Du kennst position:fixed; ?

    Ansonsten: zerlege den String in seine Bestandteile, rechne den Wert ggf. in die Einheit Pixel um, addiere scrollTop zum Wert, bau einen neuen String aus Wert und Einheit "px" zusammen und weise diesen zu...

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    1. Hallo,

      Du kennst position:fixed; ?

      nein :-( - ist das der Positionswert meines Elementes? Das Element ist unsichtbar und soll dann erst durch klick sichtbar werden - natürlich soll das ganze auch im NS laufen ...

      Ansonsten: zerlege den String in seine Bestandteile, rechne den Wert ggf. in die Einheit Pixel um, addiere scrollTop zum Wert, bau einen neuen String aus Wert und Einheit "px" zusammen und weise diesen zu...

      Kannst Du mir evtl. sagen, wie ich das mache.
      Kenn den PHp Syntax eregi_replace('px','',$var) - damit hätte ich dann das px weg und eine Zahl - geht das auch in Java?

      Danke für Deine Hilfe

      LG
      Rikarda

      1. Hallo Rikarda,

        da habe ich damals auch erst gesucht. Dabei wollte ich doch nur ein Männchen über den Bildschrim laufen lassen. Das ist heute noch nicht fertig, weil ich mindestens 8 Sequenzen brauche und nicht gut zeichnen kann ;-)

        y = parseInt(document.getElementById("logopic").style.top)

        Aber die Funktion hat das geleistet, was ich haben wollte.

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
    2. HI,

      habe das mal so gemacht:

      var topebindi=obj.style.top;
          var topebindi = topebindi.replace(/px/,"");

      allerdings werden die Zahlen immer noch nicht addiert, nur aneinandergereiht ... wie wandle ich das so um, dass Java weiß, dass es die Zahlen addieren soll ....

      Gruss Rikarda

      1. Hi,

        var topebindi = topebindi.replace(/px/,"");
        allerdings werden die Zahlen immer noch nicht addiert, nur aneinandergereiht ...

        auch nach einer Regular Expression ist ein String immer noch ein String. Wenn Du daraus einen Integer machen willst, musst Du ihn parsen. Mehr Hinweise gebe ich jetzt aber nicht mehr :-)

        wie wandle ich das so um, dass Java weiß,

        Java braucht hier überhaupt nichts zu wissen. Es geht um JavaScript, nicht um Perl, PHP, VB, Java oder sonstwas.

        Cheatah

        --
        X-Will-Answer-Email: No
      2. hi,

        var topebindi=obj.style.top;
            var topebindi = topebindi.replace(/px/,"");

        vielleicht besser "topebindi = parseInt(topebindi)"

        hth + Gruss  Joachim