Supportnet / Forum / Webseiten/HTML
div-Layer mit overflow: auto -> Anker?
Frage
Tag zusammen,
Folgende Problemstellung:
Ich hab´ einen div-Layer, Breite 300px, Höhe 150px. overflow steht auf auto. ... Aufgabenstellung: Klicke auf einen Link, der überhalb des div-Layers steht und springe innerhalb des Layers zu einem bestimmten Ankerpunkt (also <a name="">). So weit, so gut. Funktioniert auch - wenn man ober- oder unterhalb des Layers nicht noch Text hat. Denn ansonsten wird wie üblich zum Anker gesprungen. Und wie bekannt ist: Anker werden dann am oberen Seitenrand angezeigt. ... Ich möchte aber, dass die komplette Seite schön an ihrer Position haften bleibt und nur in dem div-Layer zur passenden Position gesprungen wird. ... Jemand einen Vorschlag, wie das wohl zu realisieren ist? ... vllt. mit einem inline Frame? und JavaScript?
ich wäre sehr sehr sehr dankbar für Antworten,
Sven.
Antwort 1 von rfb
das ist wohl allenfalls über IFrames zu realisieren, eine Lösung, die aber auch eher unbefriedigend ist, da Iframes nicht barrierefrei und zudem oft genug aus Sicherheitsgründen deaktiviert sind.
JavaScript-Lösungen?
sind ja ein bisschen unzuverlässig, aber diese funktioniert (in Opera, IE, Mozi), wenn auch etwas ruckelig:
im head ein wenig script:
du setzt in den Textbereich über dem DIV einen Anker, der die Stelle markiert, die obenlinks im Anzeigefenster sein soll
und ergänzt die Links im div wie folgt:
Wirkungsweise: der Browser führt einfach 2 Links aus, erst innerhalb des divs, danach springt er zu "obenlinks", dabei sollte der Link innerhalb des divs in dessen oberer Ecke bleiben.
(ohne javaScript funktionieren die Links wie gehabt)
JavaScript-Lösungen?
sind ja ein bisschen unzuverlässig, aber diese funktioniert (in Opera, IE, Mozi), wenn auch etwas ruckelig:
im head ein wenig script:
<script type="text/javascript">
<!--
function divlink(a) {
document.location.href=a.href;
document.location.href="#obenlinks";
return false;
}
//-->
</script>du setzt in den Textbereich über dem DIV einen Anker, der die Stelle markiert, die obenlinks im Anzeigefenster sein soll
<a name="obenlinks">...</a>und ergänzt die Links im div wie folgt:
<a href="#anker1" onclick="return divlink(this)">sonstwohin innerhalb des divs</a>Wirkungsweise: der Browser führt einfach 2 Links aus, erst innerhalb des divs, danach springt er zu "obenlinks", dabei sollte der Link innerhalb des divs in dessen oberer Ecke bleiben.
(ohne javaScript funktionieren die Links wie gehabt)
Antwort 2 von rabies
Hey, danke für Deine Antwort.
Letztendlich haben wir den Content, der damit verpackt werden sollte auch einfach wo anders reingepackt. ... wie auch immer, wenigstens was dazugelernt.
Sven.
Letztendlich haben wir den Content, der damit verpackt werden sollte auch einfach wo anders reingepackt. ... wie auch immer, wenigstens was dazugelernt.
Sven.

