Hi,
Machbar ist das, allerdings mit etwas aufwand.
Wenn du einen Layer "scrollen" willst mußt du dir erst einmal eine eigene Scrollbar basteln:
<layer id="Scrollbar" left="" top="" >
<a href="#" onMouseover="scroll('aktiv', 'hoch()')" onMouseout="scroll('inaktiv', 'hoch()')">
Hoch scrollen</a>
<a href="#"onMouseover="scroll('aktiv', 'runter()')" onMouseout="scroll('inaktiv', 'hoch()')">
Runter scrollen</a>
</layer>
Als nächstes brauchst du einen Layer in dem der Inhalt steht.
<layer id="Inhalt"> left="" top"">
Hier steht dein langer langer Text.
</layer>
Diesen Layer kannst du mit document.Inhalt.moveBy(x,y) verschieben.
Um eine scroll bewegung zu simmulieren kannst du window.setInterval benutzen um die bewegungs funktion immer wieder auszuführen.
<script>
function scroll(Modus, Richtung)
{
if (Modus == "aktiv")
{dup = window.setInterval(Richtung ,10);} // wiederholt den funktionsaufruf von Richtung aller // 10 Millisekunden
if (Modus == "inaktiv") // trift nur zu wenn du den link wieder verlässt
{window.clearInterval(dup);} // löscht die wiederholung des funktionsaufrufes
}
function hoch()
{
document.Inhalt.moveBy(0,-5);} // bewegt Layer 5px nach oben
// Abruchbedingen wenn der Text zuende ist:
// Mit document.Inhalt.top - document.Inhalt.document.heigh bekommst du den unteren Rand
// des Layers. Wenn der <= der Fensterhöhe ist d.h. wenn das ende des Layers zusehn ist
// wird die funktion nicht mehr aufgerufen.
if (document.Inhalt.top - document.Inhalt.document.height <= window.innerHeight)
{window.clearInterval(dup);}
}
function runter()
{
document.Inhalt.moveBy(0,5);} // bewegt Layer 5px nach unten
if (document.Inhalt.top - document.Inhalt.document.height >= window.innerHeight)
{window.clearInterval(dup);}
}
</script>
Ich habs zwar nicht ausprobier es müsste aber so ungefähr funktionieren.*s*
p.s. über nehme keine garantie das da nicht irgendwo ein semikolon fehlt oder ein rechtschreibfehler zu viel ist.
cu Knut