Christian S.: scrollTo() zeitlich verzögert ausführen

Beitrag lesen

function scrollSlow()
{

var currentScrollTop = document.documentElement.scrollTop;

if(currentScrollTop < 1440)
{
window.scrollBy(1,0);
var speed = 100;
var callee = arguments.callee;
window.setTimeout(function(){
callee();
}, speed);

}
}

Danke für die schnelle Antwort, Christian!
Leider kann ich mein Vorhaben mit diesem Script auch nicht wirklich realisieren, weil immer bis zum Ende "durchgescrollt" wird.

Dieses Scrollen sollte wenn möglich aber zeitlich verzögert geschehen und an einer bestimmten Position aufhören.

Du meinst, dass man den Scrollvorgang sieht? Oder das erst nach 2 sek. gesprungen wird?

Ich versteh nicht was an meinem Script schief läuft, hab aber auch keine Lust das nun zu testen. Aber habe wohl horizontal mit vertikal verwechselt.

Die aktuelle horizontale Scrollposition steckt in document.documentElement.scrollLeft.

Dann scrollst du alle 100ms um 1px weiter (scrollBy), bis du an dem Wert angelangt bist.

Ansonsten mal mit Firebug debuggen.

Am besten wäre es, wenn diese Position auch noch durch eine Prozentangabe definiert werden könnte, um unabhängig von der Bildschirmauflösung zu sein.

Du kannst die totale Breite des Dokuments ausrechnen, und durch 3 teilen, vll. geht das.

document.documentElement.scrollWidth / 3.

Gruß!