Moin moin!
In meonem aktuellem Projekt stoße ich mit JS mal wieder an das Ende meines Lateins, ich muss sagen diese Sprache macht es einem nicht leicht.
Ich versuche nun seit geraumer Zeit eine Live Suche unter meiner Suchbox zu plazieren.
In diesem Bild seht ihr wie es aussehen soll:
dort sieht man auch den Aufbau der Seite.
Es gibt ein "MainFrame" der ein großes DIV ist, in diesem befinden sich 2 kleinere, der "ContentFrame" und der "MitarbeiterFrame" (derzeit ausgeblendet)
in den ContentFrame werden per AJAX dann dynamisch inhalte geladen, in diesem Fall das projekt Modul.
wenn man im ContentFrame nicht srollt, dann wird das DIV, welches die suchergebnisse zeigt, richtig positioniert.
aber wie man hier sieht, ist es an der falschen stelle wenn der ContentFrame ein wenig nach unten gescrollt wird.....
mein Code zum bestimmen der X und Y koordinaten:
ich weiß absolut nicht welche position er mir da am ende erechnet um die ergebnisbox so weit unten anzuzeigen.
Tatsächlich ist es sogar so das er mir immer die selben Kordinaten liefert.
Das DIV feld zum anzeigen der Suchergebnisse befindet sich im DIV ContentFrame, wenn das Projekt Modul geladen wird.
meine Frage ist jetzt also:
Wie bekomme ich die ABSOLUTE position eines Elements im Bezug auf das Browser Fenster?
Ich habe schon dutzende Funktionen durchprobiert, die alle behaupten genau dies zu tun, aber alle erzeugen bei mir das orbige ergebniss, teilweise sogar noch obskurere Koordinaten, sodass ich erstmal bei dieser einfachen berechnung bleibe.
ich habe auch versucht für jedes Textfeld das ein ergebniss anzeigen kann eine eigene ergebnis box direkt in das TD element zu basteln, allerdings verschiebt dieses immer die gesmate tabelle, wenn ich die position auf absolut stelle, habe ich dann wieder das problem das es beim scrollen weiter unten angezeigt wird als es soll und ich will eigentlich nur mit einem arbeiten.
Vlt. ist ja auch mein gesamter Ansatz falsch, weiß jemand rat?
Danke im vorraus
P.S.
es geht nicht darum das beim scrollen das fenster nicht nachpsoitioniert wird, sondern das wenn man gescroltl hat es direkt an der falschen stelle erscheint.
In meonem aktuellem Projekt stoße ich mit JS mal wieder an das Ende meines Lateins, ich muss sagen diese Sprache macht es einem nicht leicht.
Ich versuche nun seit geraumer Zeit eine Live Suche unter meiner Suchbox zu plazieren.
In diesem Bild seht ihr wie es aussehen soll:
dort sieht man auch den Aufbau der Seite.
Es gibt ein "MainFrame" der ein großes DIV ist, in diesem befinden sich 2 kleinere, der "ContentFrame" und der "MitarbeiterFrame" (derzeit ausgeblendet)
in den ContentFrame werden per AJAX dann dynamisch inhalte geladen, in diesem Fall das projekt Modul.
wenn man im ContentFrame nicht srollt, dann wird das DIV, welches die suchergebnisse zeigt, richtig positioniert.
aber wie man hier sieht, ist es an der falschen stelle wenn der ContentFrame ein wenig nach unten gescrollt wird.....
mein Code zum bestimmen der X und Y koordinaten:
HTML:
function getX(el) {
x = el.offsetLeft;
if (!el.offsetParent) return x;
else return (x+getX(el.offsetParent));
}
function getY (el) {
y = el.offsetTop;
if (!el.offsetParent) return y;
else return (y+getY(el.offsetParent));
}
ich weiß absolut nicht welche position er mir da am ende erechnet um die ergebnisbox so weit unten anzuzeigen.
Tatsächlich ist es sogar so das er mir immer die selben Kordinaten liefert.
Das DIV feld zum anzeigen der Suchergebnisse befindet sich im DIV ContentFrame, wenn das Projekt Modul geladen wird.
meine Frage ist jetzt also:
Wie bekomme ich die ABSOLUTE position eines Elements im Bezug auf das Browser Fenster?
Ich habe schon dutzende Funktionen durchprobiert, die alle behaupten genau dies zu tun, aber alle erzeugen bei mir das orbige ergebniss, teilweise sogar noch obskurere Koordinaten, sodass ich erstmal bei dieser einfachen berechnung bleibe.
ich habe auch versucht für jedes Textfeld das ein ergebniss anzeigen kann eine eigene ergebnis box direkt in das TD element zu basteln, allerdings verschiebt dieses immer die gesmate tabelle, wenn ich die position auf absolut stelle, habe ich dann wieder das problem das es beim scrollen weiter unten angezeigt wird als es soll und ich will eigentlich nur mit einem arbeiten.
Vlt. ist ja auch mein gesamter Ansatz falsch, weiß jemand rat?
Danke im vorraus
P.S.
es geht nicht darum das beim scrollen das fenster nicht nachpsoitioniert wird, sondern das wenn man gescroltl hat es direkt an der falschen stelle erscheint.