Firefox hat Problem mit offsetLeft

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/firefox_hat_problem_mit_offsetleft_138649/page_1 - zur Vollversion wechseln!


userohnenamen schrieb am 11.03.2005 um 14:11

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 ! :(


BooTes schrieb am 11.03.2005 um 14:23

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 schrieb am 11.03.2005 um 14:24

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 :)


mat schrieb am 11.03.2005 um 15:00

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 schrieb am 11.03.2005 um 15:18

"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 schrieb am 11.03.2005 um 16:26

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 schrieb am 11.03.2005 um 17:03

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 schrieb am 12.03.2005 um 09:19

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 schrieb am 12.03.2005 um 11:48

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 schrieb am 12.03.2005 um 13:43

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 schrieb am 13.03.2005 um 03:29

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 schrieb am 13.03.2005 um 11:24

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 schrieb am 13.03.2005 um 20:17

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 schrieb am 13.03.2005 um 20:33

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 schrieb am 13.03.2005 um 23:38

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...




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026