Aloha ;)
Tja, also wenn mir jetzt noch jemand verrät, wie ich es hinbekomme, dass die scrollTop-Funktion bei gedrückt gehaltener Maustaste automatisch wiederholt wird, bis man loslässt oder das Ende erreicht ist, damit man nicht sooft clicken muss, dann bin ich mit der Lösung zufrieden.
Für soviel Lob mach ich das doch glatt. Was mir da vorschwebt:
Du definierst dir zunächst in Javascript zwei Funktionen, z.B. ScrollUp(step) und ScrollDown(step). Wenn du die Funktionalität mehr als einmal brauchst solltest du neben step noch einen Parameter elm haben, dem du das zu scrollende Element mitgeben kannst. Außerdem brauchst du eine Variable scrolling = false;
Statt onclick der Buttons abzufangen, reagierst du jetzt auf onmousedown, onmouseout und onmouseup.
Exemplarisch für den nach-unten-scrollbutton:
\\ gedrückte Maus auf Button beginnt scrollen
document.getElementById('nach-unten').onmousedown = function () {
\\ sichergehen, dass altes scrollen beendet
if (scrolling) window.clearInterval(scrolling);
scrolling = false;
\\ jede Viertelsekunde um 5px nach unten
scrolling = window.setInterval(function(){ScrollDown(5);},250);
}
\\ bei onmouseup soll das scrollen aufhören
document.getElementById('nach-unten').onmouseup = function() {
if (scrolling) window.clearInterval(scrolling);
scrolling = false;
}
\\ und falls der Anwender mit gedrückter Maus den Button verlässt: auch beenden
document.getElementById('nach-unten').onmouseout = document.getElementById('nach-unten').onmouseup;
Voila ;) Die Werte von Zeit und step für Intervall solltest du vorsichtig einstellen. Zu schnell ist dabei schlechter als zu langsam. Wers schneller will, kann immer noch nativ scrollen.
Den Code habe ich nicht getestet, Syntaxfehler oder andere Kleinigkeiten sind also nicht ausgeschlossen.
In dem Fall bin ich übrigens deiner Meinung. Die Buttons machen die Scroll-Funktionalität sichtbar umd natives Scrollen funktioniert auch. Würde sagen das ist legitim. Tatsächlich gibt es sowohl bei FileUpload-Button als auch bei den Scrolleisten keinen sinnvollen Grund, warum man sie nicht modifizieren kann. Das gehört imho längst standardisiert. Auch wenn ich dem Rest recht gebe, das muss mit Bedacht geschehen.
Grüße,
RIDER
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[