anker
alex
- html
hallo
ich habe folgendes problem:
ich habe ein frameset horizontal geteilt.
im unteren frame ist die navi - ein drop down menü. dieses verweist auf anker im oberen frame. dieser frame scrollt horizontal. funktioniert alles eigentlich ganz gut, außer:
nach aufruf der anker sind diese, mal am linken und mal rechten fenster rand.
gibt es eine möglichkeit, das die anker immer am linken fensterrand sind?
hallo alex,
wenn ich dich richtig verstehe, ist dein unterer Frame in Ordnung und es wird tatsächlich der richtige Anker im oberen Frame angesprungen. Also scrollt der Browser wahrscheinlich genau dahin, wo er laut deines HTML-Codes in deinem oberen Frame hin soll.
Nun kann ich allerdings nicht hellsehen, wie dieser html-Code aussieht. Wäre gut, wenn du diese Info nachschieben könntest.
liebe Grüße, Uschi Renziehausen
der richtige anker wird angesprochen - und er scrollt auch zum richtigen anker. nur ist dieser ankerpunkt mal rechtsfensterrand und mal am linken fensterrand.
viielleicht stell ich mich auch zu doof an und das ist mit anker so.
hab mal den link zur seite angegebn.
über dem drop down menü link auswählen. (die anker sind in der mitte der einzelnen felder)
Hallo alex,
Wenn du mit anchor arbeitest, scrollt der Browser immer gerade soweit nach rechts, wie notwendig, um den Anfang deines Blocks anzuzeigen. Du möchtest aber, daß er soweit nach rechts scrollt, dass der fragliche Block am linken Rand erscheint.
Leider bin ich in dieser Frage nicht wirklich erfahren und ich habe jetzt keine Zeit zum Testen, aber der Weg, den ich versuchen würde, wäre der:
Verpass im oberen Frame den Tabellenzellen, die den linken Rand eines Blocks bilden, eine jeweils eindeutige id <td id="news">.
Im unteren Frame weist du dem value-Attribut der entsprechenden option denselben Wert zu: <option value="news">
Nun bastelst du dir eine Funktion, die das Scrollen im oberen Frame besorgt. Nennen wir das Kind mal roller. Diese muß jetzt folgendes machen:
Diese Funktion rufst du onchange in deiner Select-Liste auf und gibst ihr den value der gewählten option als Parameter mit.
<select onchange="roller(this.value)" ....
function roller(eltId) {
// erstmal das Element besorgen
var elt = parent.frames['content'].document.getElementById(eltId);
// linke Position des Elements finden
var leftPos = elt.offsetLeft;
var topPos = elt.offsetTop;
// dahin scrollen
parent.frames['content'].scrollTo(leftPos, topPos);
}
Wie gesagt, völlig ungetestet, aber der Ansatz sollte stimmen.
Infos zu getElementById: http://selfhtml.teamone.de/javascript/objekte/document.htm
Zu scrollTo: http://selfhtml.teamone.de/javascript/objekte/window.htm#scroll_to
Schau mal, ob es dir weiterhilft, ich muß jetzt leider was anderes tun.
Liebe Grüße, Uschi
hi,
deine frage hast du hier [pref:t=61832&m=349034] bereits gestellt.
bitte übe dich in ein wenig mehr geduld, anstatt hier solche drängelpostings zu verfassen.
und lies mal </faq/#Q-11>.
gruss,
wahsaga
Hallo alex,
nach aufruf der anker sind diese, mal am linken und mal rechten fenster rand.
"leere" Anker sind zwar prinzipiell nicht falsch, manche Browser haben aber Probleme damit. Du solltest statt:
<a name="inszenierungen"></a> etwas wie:
<a name="inszenierungen"><img src="img/titel/inszenierungen.gif" width="150" height="25"></a> verwenden.
Klappt es dann besser? Grüße,
Jochen
wenn ich die braunen bilder so lang mache wie die einzelnen bereiche sind und in den anker tu passt das alles.
danke