Javascript Elementeigenschaften addieren
Rikarda
- javascript
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
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
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
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
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
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
hi,
var topebindi=obj.style.top;
var topebindi = topebindi.replace(/px/,"");
vielleicht besser "topebindi = parseInt(topebindi)"
hth + Gruss Joachim