Hi,
Nehmen wir einmal folgendes Beispielmenü:
… und werfen wir es dann gleich wieder weg, weil es unsemantische Div-Suppe ist.
(Und dann zeichnen wir das ordentlich mit UL/OL und LI aus.)
Und das folgende zitiert sich jetzt ganz bescheiden, weil du den Text zwischen deine ASCII-Art gepackt hast:
| |-----------| | Da, soweit ich das verstanden habe, die Funktion von |_|------------|_|
| |-----------| | Event Listenern ist, in kurzen Intervallen den Status | |------------| |
|_|-----------|_| ihres Ziel-Elements zu überprüfen,
Nein.
Bzw. Jein.
Das handelt alles der Browser intern für dich, auf JS-Ebene bekommst du damit nicht in Berührung – da bekommst du einfach nur mit, dass die Events „gefeuert“ werden.
(Bestimmt Events feuern aber unter Umständen sehr oft, z.B. der scroll-Event – das sollte man dann schon etwas intelligenter handhaben, als bei jedem feuern sofort etwas zu machen.)
dürfte klar sein, | |------------| |
|_|-----------|_| das bei vielen Duzend Menü-Elementen, das Laufen der | |------------| |
|-----------| dazugehörigen Event Listener nicht gerade speicher- | |------------| |
|-----------| schonend ist,
Sowas handelt in diesem Umfang jeder Browser problemlos.
von den Elementen selbst, die ja nicht |_|------------|_|
|-----------| wirklich nonexistent im Sinne von 'display:none' |_|------------|_|
|-----------| sind, sondern ja lediglich unsichtbar sind, im Sinne |------------|
|-----------| von 'visibility:hidden', ganz zu schweigen! |------------|
Auch das ist nur ein Fliegenschiss.
Die Frage, die ich mir nun stelle ist, ob es nicht möglich ist, einen Bereich außerhalb der Menübox zu definieren, also gewissermaßen eine Grenze, ab der beim scrollen die Menüelemente auf 'display:none' bzw. 'display:block' gesetzt werden und die zu dem jeweiligen Element dazugehörenden EventListener hinzugefügt bzw. wieder entfernt werden, eben abhängig vom 'Status' des Scrollens.
Das würde das ganze aufwendiger ([auch] für dich in der Umsetzung) und höchstvermutlich weniger performant machen.
Im Prinzip müsste es doch also eigentlich möglich sein, eine solche Funktion zusammenzubasteln.
Wäre es. Wäre aber vergebliche Liebesmüh’, bzw. vermutlich sogar eher kontraproduktiv.
MfG ChrisB
Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/