Hallo Lukas,
Ich möchte auf meiner Webpage eine TD scrollen wobei die Scrollbuttons Bilder sind und in einer andern TD sind.
http://www.schaufler.cc/Lukas/html_projekte.php
...und zu Vergleichen die Flash Version...
http://www.schaufler.cc/Lukas/Flash_main.html
Die HTML Version sollte genau so wie die Flash Version auschauen und funktionieren (Content wird per PHP aus einer externen Datei ausgelesen).
In Javascript dich es doch die Möglichkeit einen Befehl mit einem Ziel zu verknüpfen?
Wie heißt dieser Befehl?
Für diesen Befehl muss ich der Ziel TD doch einen Namen zuweisen (geht das normal mit name="xy")?
Also wenn du deine Inhalte innerhalb deiner Inhaltszelle in einem Iframe päsentierst, der sich auf 100% Höhe und Breite deiner Inhaltszelle ausdehnt, dann musst du diesem Iframe einen Namen geben, um ihn später von außerhalb (Buttons in deiner Hauptseite) ansprechen zu können. Vielleicht meinst du das.
Nehmen wir mal an, du gibst deinem Iframe das Namensattribut name="detail". Dann kannst du ihn mittels Buttons von der Muterseite aus steuern, indem du ihn mit just diesem Namen ansprichst:
function scrollUp() {
detail.scrollBy(0, -5);
scr = window.setTimeout("scrollUp()",83);
}
function scrollDown() {
detail.scrollBy(0, 5);
scr = window.setTimeout("scrollDown()",83);
}
function scrollStop() {
window.clearTimeout(scr);
}
Dazu rufts du die Funktionen scrollUp() und scrollDown() jeweils mit dem onMouseOver-Eventhandler auf deinen entsprechenden Buttons auf und mit dem onMouseOut-Eventhandler stoppst du sie dann wieder. Übrigens: die 83 Millisekunden des Intervalls entsprechen dabei der für Flashfilme üblichen Framerate von 12 pro Sekunde. Die Werte -5 und 5 der Schrittgeschwindigkeit des Scrollens.
Ein Beispiel, wie du das machst, damit auch Leute, die JS nicht aktiviert haben, wenigstens per Scrollleiste in deinem Iframe scrollen können, siehst du hier:
http://www.sprachlernspiele.de/scroll/index.html
Auf das Ein- und Ausblenden der Buttons kannst du ja in dem Fall verzichten, du möchtest sie ja glaube ich immmer haben.
Natürlich geht das Ganze auch ohne Iframe, ich denke aber, dann wird es richtig kompliziert: Dann müsstest du in deiner Layouttabelle alle Zellen mit weißer Hintergrundfarbe abdecken und nur den Inhaltsbereich als Guckfenster ohne Hintergrundfarbe aussparen. Einen in der Breite passgenauen und absolut positionierten Layer dahinter könntest du dann dynamisch in seiner top-Eigenschaft verändern, sodass immer andere Ausschnitte durch das Guckloch hindurch schauen. Diesen Layer würdest du dann mit seiner ID ansprechen und das ganze natürlich auch wieder in einer Intervall- oder in einer sich selbst aufrufenden Timeout-Funktion.
Gruß Gernot