"We are back" « oc.at

Firefox hat Problem mit offsetLeft

userohnenamen 11.03.2005 - 14:11 2219 25
Posts

userohnenamen

leider kein name
Avatar
Registered: Feb 2004
Location: -
Posts: 15877
ich hab hier eine funktion nach der ich div elemente positioniere je nachdem wie groß der browser ist

Code: PHP
  strPage_Top = eval(document.getElementById('oBorderTable').offsetTop);
  strPage_Left = eval(document.getElementById('oBorderTable').offsetLeft);

bei offsetTop liefert er mir das richtige ergebnis, bei offsetLeft bekomm ich immer null,
obwohl das element von dem ich aus positioniere definitiv nicht ganz links ist

in allen anderen browsern funktionierts problemlos, nur der ****** firefox macht wieder probleme

hat jemand eine idee dafür?

edit:
mit
Code: PHP
  strPage_Left = eval(document.getElementById('oBorderTable').offsetParent.offsetLeft);
gehts im firefox, jedoch nicht mehr im netscape 6

hilfe ! :(
Bearbeitet von watchout am 13.03.2005, 23:42

BooTes

Octocat!
Avatar
Registered: Sep 2002
Location: St. Egyden
Posts: 1595
dann überprüf halt vorher welcher browser verwendet wird und je nachdem kommt halt der eine oder andere code.. is halt a bissi mehr aufwand

userohnenamen

leider kein name
Avatar
Registered: Feb 2004
Location: -
Posts: 15877
Zitat von BooTes
dann überprüf halt vorher welcher browser verwendet wird und je nachdem kommt halt der eine oder andere code.. is halt a bissi mehr aufwand

das kanns ja auch ned sein
jetzt mach ich schon prüfungen für IE, NS4 und NS6
jetzt auch noch extra für FF

ich weiß ja warum ich den IE so mag :D

und selbst mit
Code:
navigator.appName
bekomm ich nicht raus ob netscape oder firefox, da beide netscape ausgeben

mit
Code:
navigator.userAgent.search(/Firefox/);
gehts :)
Bearbeitet von userohnenamen am 11.03.2005, 14:42

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25710
Zitat
ich hab hier eine funktion nach der ich div elemente positioniere je nachdem wie groß der browser ist
ist das für eine normale inetseite oder für ein spezielleres projekt (spiel, ..)?

userohnenamen

leider kein name
Avatar
Registered: Feb 2004
Location: -
Posts: 15877
"normale" internetseite
is für ein kontextmenü das positioniert gehört
bei einem spiel würd ich drauf ******en ;)

und ich bin grad drafugekommen das
strPage_Left = eval(document.getElementById('oBorderTable').offsetParent.offsetLeft)
doch nicht funktioniert, da es mir nur die breite der tabelle über dem objekt angibt (hätt ich mir aber denken können)

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von userohnenamen
"normale" internetseite
is für ein kontextmenü das positioniert gehört
bei einem spiel würd ich drauf ******en ;)

und ich bin grad drafugekommen das
strPage_Left = eval(document.getElementById('oBorderTable').offsetParent.offsetLeft)
doch nicht funktioniert, da es mir nur die breite der tabelle über dem objekt angibt (hätt ich mir aber denken können)
God... Ich hoffe ich werd' mich nie in der Situation finden deine HP anschauen zu _müssen_ :o

Schonmal auf die Idee gekommen, dass sich solche Sachen auch fast immer ohne JavaScript lösen lassen...?

Btw: Ich halte es für sehr unwahrscheinlich, dass der Fehler beim FF liegt - bis jetzt ist der FF/Mozilla (vielleicht ausgenommen amaya) der am ehesten standardkonforme Browser den es gibt. Allerdings habe ich jetzt auch keine Lust wieder 'mal jemanden zu beweisen, dass IE vielleicht maximal die Schale, Opera das Weisse, und FF vielleicht knapp am Gelben vom Ei ist...

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13496
ja ich würde auch zuerst eine normale Lösung in CSS suchen.. außer du willst zB ein MouseOver immer genau in der Mitte des Browserfensters haben, was aber auch "kein Problem" sein sollte mit CSS

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11346
offsetLeft steht in keiner W3C Recommendation, daher bleibt dir nichts anderes übrig, als in die Dokumentation jedes Browsers zu schauen, den du unterstützen willst, und dein Programm entsprechend anzupassen.

Alternativ kannst du versuchen, ohne dieses Property auszukommen.

Und was soll das "eval"?

userohnenamen

leider kein name
Avatar
Registered: Feb 2004
Location: -
Posts: 15877
ich will den mouseover je nach browsergröße wo anders haben
kommt daher weil die seite auf ne gewisse größe in der mitte des browser gefixt ist
und je nachdem wie groß der browser ist muss das kontextmenü wo anders hin
hab mich noch nicht mit positionierung über css beschäftigt, vielleicht wirds mal zeit dafür :D

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25710
umständlich, unnötig, unwartbar = ich würds lassen.

context menü.. mhm, bin nicht so der csstyp der bling effekte erzeugt, aber imo ist dafür nur wenig oder kein js nötig.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
geht zwar nicht ohne javascript... aber offsetleft wär das letzte an das ich in dem zusammenhang gedacht hätte...

sowas macht man über style.left; style.top; style....

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Ich bin jetzt nicht so der Designexperte aber vielleicht kann mich ja wer aufklären: Würde das mit CSS2 lösbar sein (siehe CSS-Edge)?

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Nein. :bash:
Zitat von watchout
geht zwar nicht ohne javascript... aber offsetleft wär das letzte an das ich in dem zusammenhang gedacht hätte...

sowas macht man über style.left; style.top; style....

userohnenamen

leider kein name
Avatar
Registered: Feb 2004
Location: -
Posts: 15877
ich glaub du hast mich falsch verstanden
ich will mit offsetleft die position abfragen! und nicht festlegen

nehm sonst gerne jeden tipp an (mit beschreibung ;) ) wie es ideal lösbar ist :D

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
die position wovon?

Ein kontextmenü is immer dort wo die maus is - da is ja komplett egal wo das ding vorher war - man setzt einfach die neue position... is mir auch komplett unklar was das mit der browsergrösse zu tun hat...
Bearbeitet von watchout am 13.03.2005, 23:41
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz