Firefox hat Problem mit offsetLeft
userohnenamen 11.03.2005 - 14:11 2219 25
userohnenamen
leider kein name
|
ich hab hier eine funktion nach der ich div elemente positioniere je nachdem wie groß der browser ist 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 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!
|
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
|
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  und selbst mit navigator.appName
bekomm ich nicht raus ob netscape oder firefox, da beide netscape ausgeben mit navigator.userAgent.search(/Firefox/);
gehts
Bearbeitet von userohnenamen am 11.03.2005, 14:42
|
mat
AdministratorLegends never die
|
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
|
"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
Legendundead
|
"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_  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
|
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
|
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
|
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
|
mat
AdministratorLegends never die
|
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
Legendundead
|
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
|
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
Legendundead
|
Nein.  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
|
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
|
watchout
Legendundead
|
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
|