Sprint
Erfahrenes Mitglied
Hallo zusammen,
nachdem mein Hilfesystem nun schon ganz gut funktioniert, bin ich auf ein damit zusammenhängendes Problem gestoßen. Und zwar ist das Hauptmenü der Seite in einem
So ist der grundsätzliche Aufbau der Seite. Ich habe dann in das Script, das die Hilfeeinblendungen steuert, diesen Befehl eingesetzt.
Der
Der Befehl wird auch ausgeführt, allerdings wird nicht das angesprochene div verschoben, sondern die darunter liegende Webseite! Und da steige ich dann aus. Warum verschiebt er den den kompletten body und nicht das angegebene div? Ich hab auch schon verschiedene andere Varianten ausprobiert, es ist aber immer das selbe. Wie muß das aussehen, damit wirklich nur das betroffene div verschoben wird?
Und sollte das wirklich nicht funktionieren, könnte man ja auch noch das top per JS ändern. Aber wie bekomme ich da den korrekten Wert raus? jeder Bildschirm ist ja anders und mit einem festen Wert wird entweder nicht weit genug verschoben, oder zu weit und die betroffenen Teile verschwinden nach oben aus dem Bildschirm.
Edit:
Ich habe es inzwischen geschafft, über die div- und Fensterhöhe die Verschiebung per CSS hinzukriegen. aber das ist für mich jetzt nicht unbedingt eine elegante Lösung. Wenn also jemand weiß, warum das automatische Scrollen nicht funktioniert, wäre das toll.
nachdem mein Hilfesystem nun schon ganz gut funktioniert, bin ich auf ein damit zusammenhängendes Problem gestoßen. Und zwar ist das Hauptmenü der Seite in einem
aside
angesiedelt, das per Button aus- bzw. eingefahren wird. Nun gibt es ein paar Hilfethemen, die Punkte ganz unten im Menü betreffen und auf etwas kleineren Monitoren liegen die außerhalb des sichtbaren Teils. Der aside Teil müßte also nach unten gescrollt werden.
HTML:
<body>
<aside id="main-menu-panel" class="dv-panel mCustomScrollbar _mCS_1 mCS-autoHide ps-active-panel" style="position: fixed; top: 0px; height: 100%; z-index: 2147483647; left: auto; right: 0px; display: block;">
<div id="mCSB_1" class="mCustomScrollBox mCS-light mCSB_vertical mCSB_inside" tabindex="0">
<div id="mCSB_1_container" class="mCSB_container" style="position: relative; top: -1px; left: 0px;" dir="ltr">
<nav id="mainmenu">
<ul>
<li>...</li>
</ul>
</nav>
</div>
</div>
</aside>
</body>
So ist der grundsätzliche Aufbau der Seite. Ich habe dann in das Script, das die Hilfeeinblendungen steuert, diesen Befehl eingesetzt.
Javascript:
$("#mCSB_1_container").scrollTop($("#mCSB_1_container")[0].scrollHeight);
#mCSB_1_container
ist der Teil, der verschoben wird, wenn ich das Menü mit der Maus scrolle. Das kann man sehr schön an den top Angaben beim inline CSS sehen. Also sollte es doch auch der Bereich sein, der per JS verschoben werden muss, oder?Der Befehl wird auch ausgeführt, allerdings wird nicht das angesprochene div verschoben, sondern die darunter liegende Webseite! Und da steige ich dann aus. Warum verschiebt er den den kompletten body und nicht das angegebene div? Ich hab auch schon verschiedene andere Varianten ausprobiert, es ist aber immer das selbe. Wie muß das aussehen, damit wirklich nur das betroffene div verschoben wird?
Edit:
Ich habe es inzwischen geschafft, über die div- und Fensterhöhe die Verschiebung per CSS hinzukriegen. aber das ist für mich jetzt nicht unbedingt eine elegante Lösung. Wenn also jemand weiß, warum das automatische Scrollen nicht funktioniert, wäre das toll.
Zuletzt bearbeitet: