T
TobiNeu
Hallo,
Ich habe das Problem das ich ein ziemlich großen Baum mit mehreren tausend Einheiten entwickelt habe.
Nun kann man per suche im anderen Frame zu einer komplett anderen Einheit springen.
Der Baum ist soweit, dass der Baum bis zur gesuchten Einheit geöffnet und diese makiert wird.
Das Problem ist jedoch, dass wenn mehrere Pfade im Baum geöffnet sind, liegt die gesuchte Einheit sehr schnell außerhalb des Sichtbarkeitsprogramm. Dies muss ich nun mit Hilfe der scrollTo-Funktion beheben.
Nun hab ich mir das wie folgt vorgestellt:
Die Funktionen sehen wie folgt aus:
Und im letzten Schritt überrpüfen ob die position des elementes im aktuellen Sichtbarkeitsbereich liegt:
Ich denke mein Fehler liegt in der if-Abfrage im letzten Bereich, den ohne die if Abfrage scrollt er immer zum gewümschten Element.
Wäre klasse wenn mir jemand helfen könnte.
Viele Grüße
Ich habe das Problem das ich ein ziemlich großen Baum mit mehreren tausend Einheiten entwickelt habe.
Nun kann man per suche im anderen Frame zu einer komplett anderen Einheit springen.
Der Baum ist soweit, dass der Baum bis zur gesuchten Einheit geöffnet und diese makiert wird.
Das Problem ist jedoch, dass wenn mehrere Pfade im Baum geöffnet sind, liegt die gesuchte Einheit sehr schnell außerhalb des Sichtbarkeitsprogramm. Dies muss ich nun mit Hilfe der scrollTo-Funktion beheben.
Nun hab ich mir das wie folgt vorgestellt:
Code:
//Position der Einheit zu der gescrollt werden soll herausfinden
var y = getY(document.getElementById(currentKey));
var x = getX(document.getElementById(currentKey));
Die Funktionen sehen wie folgt aus:
Code:
function getY(oElement) {
var iReturnValue = 0;
while( oElement != null ) {
iReturnValue += oElement.offsetTop;
oElement = oElement.offsetParent;
}
return iReturnValue;
}
function getX(oElement) {
var iReturnValue = 0;
while( oElement != null ) {
iReturnValue += oElement.offsetLeft;
oElement = oElement.offsetParent;
}
return iReturnValue;
}
Und im letzten Schritt überrpüfen ob die position des elementes im aktuellen Sichtbarkeitsbereich liegt:
Code:
if (y<window.pageYOffset || y>window.pageYOffset+window.pageY) {
window.scrollTo(x-40,y-100);
}
Ich denke mein Fehler liegt in der if-Abfrage im letzten Bereich, den ohne die if Abfrage scrollt er immer zum gewümschten Element.
Wäre klasse wenn mir jemand helfen könnte.
Viele Grüße